Skip to content
Snippets Groups Projects
Commit 914b60c8 authored by Steve Holme's avatar Steve Holme
Browse files

ntlm: Updated Curl_ntlm_core_mk_ntlmv2_resp() to use local variables

...until the function is successful when it returns them in the out
parameters.
parent 07b66cbf
No related branches found
No related tags found
No related merge requests found
......@@ -547,6 +547,7 @@ CURLcode Curl_ntlm_core_mk_ntlmv2_resp(unsigned char *ntlmv2hash,
------------------------------------------------------------------------------
*/
unsigned int len = 0;
unsigned char *ptr = NULL;
unsigned char hmac_output[NTLM_HMAC_MD5_LEN];
long long tw;
......@@ -556,15 +557,14 @@ CURLcode Curl_ntlm_core_mk_ntlmv2_resp(unsigned char *ntlmv2hash,
tw = ((long long)time(NULL) + 11644473600ULL) * 10000000ULL;
/* Calculate the response len */
*ntresp_len = NTLM_HMAC_MD5_LEN + NTLMv2_BLOB_LEN;
len = NTLM_HMAC_MD5_LEN + NTLMv2_BLOB_LEN;
/* Allocate the response */
*ntresp = malloc(*ntresp_len);
if(!*ntresp)
ptr = malloc(len);
if(!ptr)
return CURLE_OUT_OF_MEMORY;
ptr = *ntresp;
memset(ptr, 0, *ntresp_len);
memset(ptr, 0, len);
/* Create the BLOB structure */
snprintf((char *)ptr + NTLM_HMAC_MD5_LEN, NTLMv2_BLOB_LEN,
......@@ -581,14 +581,17 @@ CURLcode Curl_ntlm_core_mk_ntlmv2_resp(unsigned char *ntlmv2hash,
res = Curl_hmac_md5(ntlmv2hash, NTLM_HMAC_MD5_LEN, ptr + 8,
NTLMv2_BLOB_LEN + 8, hmac_output);
if(res) {
Curl_safefree(*ntresp);
*ntresp_len = 0;
Curl_safefree(ptr);
return res;
}
/* Concatenate the HMAC MD5 output with the BLOB */
memcpy(ptr, hmac_output, NTLM_HMAC_MD5_LEN);
/* Return the response */
*ntresp = ptr;
*ntresp_len = len;
return res;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment