summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Kukuk <kukuk@thkukuk.de>2005-09-01 19:21:19 +0000
committerThorsten Kukuk <kukuk@thkukuk.de>2005-09-01 19:21:19 +0000
commita4f79c12525ff134ef9bcd141f7b5223e9772b9b (patch)
treed9979b0ce8bffc1b8804f8e4e8f5a63845da2889
parent3a265f6249e17882cf0195dd1fe7abb94cd3160f (diff)
Relevant BUGIDs: none
Purpose of commit: bugfix Commit summary: --------------- Fix memory leak in pam_vprompt and adjust printf attribute. Patch from Dmitry V. Levin.
-rw-r--r--libpam/include/security/pam_ext.h2
-rw-r--r--libpam/pam_vprompt.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/libpam/include/security/pam_ext.h b/libpam/include/security/pam_ext.h
index 1434eb29..b461f2d0 100644
--- a/libpam/include/security/pam_ext.h
+++ b/libpam/include/security/pam_ext.h
@@ -41,7 +41,7 @@ extern int PAM_FORMAT((printf, 4, 0)) PAM_NONNULL((4))
pam_vprompt (pam_handle_t *pamh, int style, char **response,
const char *fmt, va_list args);
-extern int PAM_FORMAT((printf, 4, 0)) PAM_NONNULL((4))
+extern int PAM_FORMAT((printf, 4, 5)) PAM_NONNULL((4))
pam_prompt (pam_handle_t *pamh, int style, char **response,
const char *fmt, ...);
diff --git a/libpam/pam_vprompt.c b/libpam/pam_vprompt.c
index e680ceb7..0239c8f4 100644
--- a/libpam/pam_vprompt.c
+++ b/libpam/pam_vprompt.c
@@ -84,6 +84,7 @@ pam_vprompt (pam_handle_t *pamh, int style, char **response,
if (response)
*response = pam_resp == NULL ? NULL : pam_resp->resp;
_pam_overwrite (msgbuf);
+ _pam_drop (pam_resp);
free (msgbuf);
if (retval != PAM_SUCCESS)
_pam_system_log (LOG_ERR, "conversation failed");
@@ -91,7 +92,7 @@ pam_vprompt (pam_handle_t *pamh, int style, char **response,
return retval;
}
-int PAM_FORMAT((printf, 4, 0)) PAM_NONNULL((4))
+int PAM_FORMAT((printf, 4, 5)) PAM_NONNULL((4))
pam_prompt (pam_handle_t *pamh, int style, char **response,
const char *fmt, ...)
{