From 2904a66bb1869a30a29194ca0c6b728306f078ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 26 Dec 2006 00:25:17 +0000 Subject: [PATCH] Extract the infotarget from the answer. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@19494 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/ntlm/ntlm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/ntlm/ntlm.c b/lib/ntlm/ntlm.c index 439d45f6f..52604f76d 100644 --- a/lib/ntlm/ntlm.c +++ b/lib/ntlm/ntlm.c @@ -944,7 +944,7 @@ heim_ntlm_calculate_ntlm2(const void *key, size_t len, CHECK(krb5_storage_write(sp, infotarget->data, infotarget->length), infotarget->length); /* unknown */ - CHECK(krb5_store_uint32(sp, 0), 0); + /* CHECK(krb5_store_uint32(sp, 0), 0); */ CHECK(krb5_storage_to_data(sp, &data), 0); krb5_storage_free(sp); @@ -1041,7 +1041,11 @@ heim_ntlm_verify_ntlm2(const void *key, size_t len, ret = EINVAL; goto out; } - infotarget->length = answer->length - 32; + + /* client challange */ + CHECK(krb5_storage_read(sp, serveranswer, 8), 8); + + infotarget->length = answer->length - 40; infotarget->data = malloc(infotarget->length); if (infotarget->data == NULL) { ret = ENOMEM; @@ -1061,11 +1065,13 @@ heim_ntlm_verify_ntlm2(const void *key, size_t len, HMAC_CTX_cleanup(&c); if (memcmp(serveranswer, clientanswer, 16) != 0) { + _ntlm_free_buf(infotarget); return EINVAL; } return 0; out: + _ntlm_free_buf(infotarget); if (sp) krb5_storage_free(sp); return ret;