diff options
| author | Bruce Momjian | 2014-04-17 16:37:53 +0000 |
|---|---|---|
| committer | Bruce Momjian | 2014-04-17 16:37:53 +0000 |
| commit | 9fe55259fd61fd9199907623f974caa7af66e780 (patch) | |
| tree | 2d2d7fc333474267d375ca35db482b8a4e42e253 /contrib/pgcrypto/crypt-blowfish.c | |
| parent | 83defef8c794e7772e4099a7efa2ebac3c62742c (diff) | |
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.
Diffstat (limited to 'contrib/pgcrypto/crypt-blowfish.c')
| -rw-r--r-- | contrib/pgcrypto/crypt-blowfish.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/pgcrypto/crypt-blowfish.c b/contrib/pgcrypto/crypt-blowfish.c index b49747d9265..fbaa3d776a0 100644 --- a/contrib/pgcrypto/crypt-blowfish.c +++ b/contrib/pgcrypto/crypt-blowfish.c @@ -35,6 +35,7 @@ #include "postgres.h" #include "px-crypt.h" +#include "px.h" #ifdef __i386__ #define BF_ASM 0 /* 1 */ @@ -616,7 +617,7 @@ _crypt_blowfish_rn(const char *key, const char *setting, count = (BF_word) 1 << ((setting[4] - '0') * 10 + (setting[5] - '0')); if (count < 16 || BF_decode(data.binary.salt, &setting[7], 16)) { - memset(data.binary.salt, 0, sizeof(data.binary.salt)); + px_memset(data.binary.salt, 0, sizeof(data.binary.salt)); return NULL; } BF_swap(data.binary.salt, 4); @@ -729,7 +730,7 @@ _crypt_blowfish_rn(const char *key, const char *setting, /* Overwrite the most obvious sensitive data we have on the stack. Note * that this does not guarantee there's no sensitive data left on the * stack and/or in registers; I'm not aware of portable code that does. */ - memset(&data, 0, sizeof(data)); + px_memset(&data, 0, sizeof(data)); return output; } |
