aboutsummaryrefslogtreecommitdiff
path: root/modules/pam_timestamp/hmac_openssl_wrapper.c
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2023-12-11 13:43:30 +0100
committerDmitry V. Levin <ldv@strace.io>2023-12-19 12:22:59 +0000
commit0a9912e5f7810dffeecad0131b1f0c038457bfe5 (patch)
tree97aca58412fd1793c58724a23952d36ab34c40e1 /modules/pam_timestamp/hmac_openssl_wrapper.c
parentd91f60b2125485f515c3d59d6ab2e55daf84e19e (diff)
downloadpam-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/pam_timestamp/hmac_openssl_wrapper.c')
-rw-r--r--modules/pam_timestamp/hmac_openssl_wrapper.c2
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;
}