diff options
author | Simo Sorce <simo@redhat.com> | 2013-10-16 13:36:23 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2013-10-16 13:44:51 -0400 |
commit | bfb97d9d48c046c0e051dec9579dcb947b0c3668 (patch) | |
tree | 26d7542dd6e244acf68e6a40b7c1ff5aeca141d5 /src/gss_sec_ctx.c | |
parent | 9a6214cf1fe5a3db30496ab5762dcf6a2114110e (diff) | |
download | gss-ntlmssp-password.tar.gz gss-ntlmssp-password.tar.xz gss-ntlmssp-password.zip |
Fix handling of NULL domainpassword
Fix segafult in NTOWFv2. When domain is NULL it is just omitted from the
NTOWFv2 computation.
Fix segfault in accept_sec_context, just make dom_name be an empty string.
Fix also memory leaks.
Diffstat (limited to 'src/gss_sec_ctx.c')
-rw-r--r-- | src/gss_sec_ctx.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gss_sec_ctx.c b/src/gss_sec_ctx.c index 7736244..528cb13 100644 --- a/src/gss_sec_ctx.c +++ b/src/gss_sec_ctx.c @@ -938,6 +938,15 @@ uint32_t gssntlm_accept_sec_context(uint32_t *minor_status, size_t ulen, dlen, uadlen; gss_buffer_desc usrname; + if (!dom_name) { + dom_name = strdup(""); + if (!dom_name) { + retmin = ENOMEM; + retmaj = GSS_S_FAILURE; + goto done; + } + } + ulen = strlen(usr_name); dlen = strlen(dom_name); if (ulen + dlen + 2 > 1024) { @@ -1075,6 +1084,9 @@ done: safefree(computer_name); safefree(workstation); safefree(domain); + safefree(usr_name); + safefree(dom_name); + safefree(wks_name); ntlm_free_buffer_data(&target_info); return retmaj; } |