summaryrefslogtreecommitdiff
path: root/source3/utils
diff options
context:
space:
mode:
authorKai Blin <kai@samba.org>2010-03-25 22:22:56 +0100
committerKarolin Seeger <kseeger@samba.org>2010-03-29 09:41:06 +0200
commit1b9a59bf28ccf0e3d9f9f22e824d69d1004c38e4 (patch)
tree3bc736bc42fc218e9fcd3ecbf7ea7291bea1b3a7 /source3/utils
parent80179fd40c0bc4cf24df9a562cba0e6f1717d3ec (diff)
downloadsamba-1b9a59bf28ccf0e3d9f9f22e824d69d1004c38e4.tar.gz
s3 ntlm_auth: Don't malloc data that will be talloc_free()d
This fixes bug #7290 Thanks to Mohan <mohann@silver-peak.com> for the bug report. (cherry picked from commit 66565a364afe6336773acab35b96b8e74da078b3)
Diffstat (limited to 'source3/utils')
-rw-r--r--source3/utils/ntlm_auth.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c
index 87df3c61603..afd0b994a7e 100644
--- a/source3/utils/ntlm_auth.c
+++ b/source3/utils/ntlm_auth.c
@@ -1137,18 +1137,18 @@ static void offer_gss_spnego_mechs(void) {
/* Server negTokenInit (mech offerings) */
spnego.type = SPNEGO_NEG_TOKEN_INIT;
- spnego.negTokenInit.mechTypes = SMB_XMALLOC_ARRAY(const char *, 2);
+ spnego.negTokenInit.mechTypes = talloc_array(ctx, const char *, 2);
#ifdef HAVE_KRB5
- spnego.negTokenInit.mechTypes[0] = smb_xstrdup(OID_KERBEROS5_OLD);
- spnego.negTokenInit.mechTypes[1] = smb_xstrdup(OID_NTLMSSP);
+ spnego.negTokenInit.mechTypes[0] = talloc_strdup(ctx, OID_KERBEROS5_OLD);
+ spnego.negTokenInit.mechTypes[1] = talloc_strdup(ctx, OID_NTLMSSP);
spnego.negTokenInit.mechTypes[2] = NULL;
#else
- spnego.negTokenInit.mechTypes[0] = smb_xstrdup(OID_NTLMSSP);
+ spnego.negTokenInit.mechTypes[0] = talloc_strdup(ctx, OID_NTLMSSP);
spnego.negTokenInit.mechTypes[1] = NULL;
#endif
- spnego.negTokenInit.mechListMIC = data_blob(principal,
+ spnego.negTokenInit.mechListMIC = data_blob_talloc(ctx, principal,
strlen(principal));
len = spnego_write_data(ctx, &token, &spnego);
@@ -1273,8 +1273,8 @@ static void manage_gss_spnego_request(struct ntlm_auth_state *state,
request.negTokenInit.mechToken.length);
response.type = SPNEGO_NEG_TOKEN_TARG;
- response.negTokenTarg.supportedMech = SMB_STRDUP(OID_NTLMSSP);
- response.negTokenTarg.mechListMIC = data_blob_null;
+ response.negTokenTarg.supportedMech = talloc_strdup(ctx, OID_NTLMSSP);
+ response.negTokenTarg.mechListMIC = data_blob_talloc(ctx, NULL, 0);
status = ntlmssp_update(ntlmssp_state,
request.negTokenInit.mechToken,
@@ -1298,9 +1298,9 @@ static void manage_gss_spnego_request(struct ntlm_auth_state *state,
}
response.type = SPNEGO_NEG_TOKEN_TARG;
- response.negTokenTarg.supportedMech = SMB_STRDUP(OID_KERBEROS5_OLD);
- response.negTokenTarg.mechListMIC = data_blob_null;
- response.negTokenTarg.responseToken = data_blob_null;
+ response.negTokenTarg.supportedMech = talloc_strdup(ctx, OID_KERBEROS5_OLD);
+ response.negTokenTarg.mechListMIC = data_blob_talloc(ctx, NULL, 0);
+ response.negTokenTarg.responseToken = data_blob_talloc(ctx, NULL, 0);
status = ads_verify_ticket(mem_ctx, lp_realm(), 0,
&request.negTokenInit.mechToken,
@@ -1359,8 +1359,8 @@ static void manage_gss_spnego_request(struct ntlm_auth_state *state,
&response.negTokenTarg.responseToken);
response.type = SPNEGO_NEG_TOKEN_TARG;
- response.negTokenTarg.supportedMech = SMB_STRDUP(OID_NTLMSSP);
- response.negTokenTarg.mechListMIC = data_blob_null;
+ response.negTokenTarg.supportedMech = talloc_strdup(ctx, OID_NTLMSSP);
+ response.negTokenTarg.mechListMIC = data_blob_talloc(ctx, NULL, 0);
if (NT_STATUS_IS_OK(status)) {
user = SMB_STRDUP(ntlmssp_state->user);