summaryrefslogtreecommitdiff
path: root/source3/utils/ntlm_auth.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-11-11 10:20:24 -0800
committerJeremy Allison <jra@samba.org>2008-11-11 10:20:24 -0800
commit4f2635b729e636e123afacb0970c3d49343b3e90 (patch)
tree76d632982f23f08b23593af78614e9414dbbac2c /source3/utils/ntlm_auth.c
parent8cb23a6b2950d7419767845b6097470f76f348a7 (diff)
parent2e6bf03e519e180a1ee672dc9c9171d9e0cd114f (diff)
downloadsamba-4f2635b729e636e123afacb0970c3d49343b3e90.tar.gz
samba-4f2635b729e636e123afacb0970c3d49343b3e90.tar.bz2
samba-4f2635b729e636e123afacb0970c3d49343b3e90.zip
Merge branch 'master' of ssh://jra@git.samba.org/data/git/samba
Diffstat (limited to 'source3/utils/ntlm_auth.c')
-rw-r--r--source3/utils/ntlm_auth.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c
index 0a76761cb2..fbb105bfe6 100644
--- a/source3/utils/ntlm_auth.c
+++ b/source3/utils/ntlm_auth.c
@@ -380,13 +380,25 @@ NTSTATUS contact_winbind_auth_crap(const char *username,
}
if (nt_response && nt_response->length) {
- memcpy(request.data.auth_crap.nt_resp,
- nt_response->data,
- MIN(nt_response->length, sizeof(request.data.auth_crap.nt_resp)));
+ if (nt_response->length > sizeof(request.data.auth_crap.nt_resp)) {
+ request.flags = request.flags | WBFLAG_BIG_NTLMV2_BLOB;
+ request.extra_len = nt_response->length;
+ request.extra_data.data = SMB_MALLOC_ARRAY(char, request.extra_len);
+ if (request.extra_data.data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ memcpy(request.extra_data.data, nt_response->data,
+ nt_response->length);
+
+ } else {
+ memcpy(request.data.auth_crap.nt_resp,
+ nt_response->data, nt_response->length);
+ }
request.data.auth_crap.nt_resp_len = nt_response->length;
}
result = winbindd_request_response(WINBINDD_PAM_AUTH_CRAP, &request, &response);
+ SAFE_FREE(request.extra_data.data);
/* Display response */