diff options
author | Benny Baumann <BenBE@geshi.org> | 2023-12-11 13:43:30 +0100 |
---|---|---|
committer | Dmitry V. Levin <ldv@strace.io> | 2023-12-19 12:22:59 +0000 |
commit | 0a9912e5f7810dffeecad0131b1f0c038457bfe5 (patch) | |
tree | 97aca58412fd1793c58724a23952d36ab34c40e1 /modules | |
parent | d91f60b2125485f515c3d59d6ab2e55daf84e19e (diff) | |
download | pam-0a9912e5f7810dffeecad0131b1f0c038457bfe5.tar.gz pam-0a9912e5f7810dffeecad0131b1f0c038457bfe5.tar.bz2 pam-0a9912e5f7810dffeecad0131b1f0c038457bfe5.zip |
pam_timestamp: clean buffers before freeing
* modules/pam_timestamp/hmac_openssl_wrapper.c (generate_key): Clean
the buffer on short read.
(write_file): Clean the buffer on short write.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/pam_timestamp/hmac_openssl_wrapper.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/modules/pam_timestamp/hmac_openssl_wrapper.c b/modules/pam_timestamp/hmac_openssl_wrapper.c index a59a8de2..b2aeda21 100644 --- a/modules/pam_timestamp/hmac_openssl_wrapper.c +++ b/modules/pam_timestamp/hmac_openssl_wrapper.c @@ -105,6 +105,7 @@ generate_key(pam_handle_t *pamh, char **key, size_t key_size) if (bytes_read < 0 || (size_t)bytes_read < key_size) { pam_syslog(pamh, LOG_ERR, "Short read on random device"); + pam_overwrite_n(tmp, key_size); free(tmp); return PAM_AUTH_ERR; } @@ -192,6 +193,7 @@ write_file(pam_handle_t *pamh, const char *file_name, char *text, if (bytes_written < 0 || (size_t)bytes_written < text_length) { pam_syslog(pamh, LOG_ERR, "Short write on %s", file_name); + pam_overwrite_n(text, text_length); free(text); return PAM_AUTH_ERR; } |