]> granicus.if.org Git - curl/commitdiff
ntlm: avoid malloc(0) for zero length passwords
authorDaniel Stenberg <daniel@haxx.se>
Sat, 4 Nov 2017 15:42:21 +0000 (16:42 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 4 Nov 2017 21:22:49 +0000 (22:22 +0100)
It triggers an assert() when built with memdebug since malloc(0) may
return NULL *or* a valid pointer.

Detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4054

Assisted-by: Max Dymond
Closes #2054

lib/curl_ntlm_core.c

index 5154949e6e7cc6a2fe5545cf30f03f9d4968fc58..1309bf0d9989cbfcbe157e67c1088b4af1199a4a 100644 (file)
@@ -557,7 +557,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data,
                                    unsigned char *ntbuffer /* 21 bytes */)
 {
   size_t len = strlen(password);
-  unsigned char *pw = malloc(len * 2);
+  unsigned char *pw = len ? malloc(len * 2) : strdup("");
   CURLcode result;
   if(!pw)
     return CURLE_OUT_OF_MEMORY;