diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2017-06-05 09:43:46 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2017-06-13 10:25:24 +0200 |
commit | 818d01b4a0d332fff06db33c0c985b8c0f1417c7 (patch) | |
tree | 0a17afc8f5cf41a237abfdb7ba5af0dc28aeab8e /src/sss_client | |
parent | 37d2194cc9ea4d0254c88a3419e2376572562bab (diff) | |
download | sssd-818d01b4a0d332fff06db33c0c985b8c0f1417c7.tar.gz sssd-818d01b4a0d332fff06db33c0c985b8c0f1417c7.tar.xz sssd-818d01b4a0d332fff06db33c0c985b8c0f1417c7.zip |
pam_sss: Fix leaking of memory in case of failures
Found by coverity.
Reviewed-by: Fabiano FidĂȘncio <fidencio@redhat.com>
Diffstat (limited to 'src/sss_client')
-rw-r--r-- | src/sss_client/pam_sss.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/sss_client/pam_sss.c b/src/sss_client/pam_sss.c index 9732459e6..303809b9e 100644 --- a/src/sss_client/pam_sss.c +++ b/src/sss_client/pam_sss.c @@ -1517,10 +1517,12 @@ static int prompt_sc_pin(pam_handle_t *pamh, struct pam_items *pi) if (pi->user_name_hint) { ret = pam_get_item(pamh, PAM_CONV, (const void **)&conv); if (ret != PAM_SUCCESS) { + free(prompt); return ret; } if (conv == NULL || conv->conv == NULL) { logger(pamh, LOG_ERR, "No conversation function"); + free(prompt); return PAM_SYSTEM_ERR; } @@ -1540,6 +1542,7 @@ static int prompt_sc_pin(pam_handle_t *pamh, struct pam_items *pi) mesg[1] = &((*mesg)[1]); ret = conv->conv(2, mesg, &resp, conv->appdata_ptr); + free(prompt); if (ret != PAM_SUCCESS) { D(("Conversation failure: %s.", pam_strerror(pamh, ret))); return ret; |