1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

pgcrypto: fix memset() calls that might be optimized away

Specifically, on-stack memset() might be removed, so:

	* Replace memset() with px_memset()
	* Add px_memset to copy_crlf()
	* Add px_memset to pgp-s2k.c

Patch by Marko Kreen

Report by PVS-Studio

Backpatch through 8.4.
This commit is contained in:
Bruce Momjian
2014-04-17 12:37:53 -04:00
parent 071d9f0850
commit fc72e94a13
22 changed files with 82 additions and 67 deletions

View File

@ -69,7 +69,7 @@ mbuf_free(MBuf *mbuf)
{
if (mbuf->own_data)
{
memset(mbuf->data, 0, mbuf->buf_end - mbuf->data);
px_memset(mbuf->data, 0, mbuf->buf_end - mbuf->data);
px_free(mbuf->data);
}
px_free(mbuf);
@ -249,11 +249,11 @@ pullf_free(PullFilter *pf)
if (pf->buf)
{
memset(pf->buf, 0, pf->buflen);
px_memset(pf->buf, 0, pf->buflen);
px_free(pf->buf);
}
memset(pf, 0, sizeof(*pf));
px_memset(pf, 0, sizeof(*pf));
px_free(pf);
}
@ -298,7 +298,7 @@ pullf_read_max(PullFilter *pf, int len, uint8 **data_p, uint8 *tmpbuf)
if (res < 0)
{
/* so the caller must clear only on success */
memset(tmpbuf, 0, total);
px_memset(tmpbuf, 0, total);
return res;
}
if (res == 0)
@ -415,11 +415,11 @@ pushf_free(PushFilter *mp)
if (mp->buf)
{
memset(mp->buf, 0, mp->block_size);
px_memset(mp->buf, 0, mp->block_size);
px_free(mp->buf);
}
memset(mp, 0, sizeof(*mp));
px_memset(mp, 0, sizeof(*mp));
px_free(mp);
}