diff options
author | David Disseldorp <ddiss@samba.org> | 2013-04-17 10:39:12 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2013-04-17 21:29:29 +0200 |
commit | 0fa404c7d5c8de826d31958613b3e97587f0835d (patch) | |
tree | ca0b70d2da972a9fb7a7623da729be414d6d1752 | |
parent | f340795144348533912dc0a2c33286b48213f790 (diff) | |
download | samba-0fa404c7d5c8de826d31958613b3e97587f0835d.tar.gz samba-0fa404c7d5c8de826d31958613b3e97587f0835d.tar.bz2 samba-0fa404c7d5c8de826d31958613b3e97587f0835d.zip |
Bug 9807 - wbinfo: fix segfault in wbinfo_pam_logon
wbinfo_pam_logon() incorrectly assumes that wbcLogonUser() always
returns an allocated wbcAuthErrorInfo struct on failure.
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Apr 17 21:29:29 CEST 2013 on sn-devel-104
-rw-r--r-- | nsswitch/wbinfo.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/nsswitch/wbinfo.c b/nsswitch/wbinfo.c index cd6de34fd5..8b178598ed 100644 --- a/nsswitch/wbinfo.c +++ b/nsswitch/wbinfo.c @@ -1749,7 +1749,7 @@ static bool wbinfo_pam_logon(char *username) { wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE; struct wbcLogonUserParams params; - struct wbcAuthErrorInfo *error; + struct wbcAuthErrorInfo *error = NULL; char *s = NULL; char *p = NULL; TALLOC_CTX *frame = talloc_tos(); @@ -1800,16 +1800,15 @@ static bool wbinfo_pam_logon(char *username) d_printf("plaintext password authentication %s\n", WBC_ERROR_IS_OK(wbc_status) ? "succeeded" : "failed"); - if (!WBC_ERROR_IS_OK(wbc_status)) { + if (!WBC_ERROR_IS_OK(wbc_status) && (error != NULL)) { d_fprintf(stderr, "error code was %s (0x%x)\nerror message was: %s\n", error->nt_string, (int)error->nt_status, error->display_string); wbcFreeMemory(error); - return false; } - return true; + return WBC_ERROR_IS_OK(wbc_status); } /* Save creds with winbind */ |