diff options
-rw-r--r-- | libpam/include/security/pam_ext.h | 2 | ||||
-rw-r--r-- | libpam/pam_vprompt.c | 3 |
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, ...) { |