]> granicus.if.org Git - curl/commitdiff
better checking that strdup() works
authorDaniel Stenberg <daniel@haxx.se>
Mon, 10 May 2004 08:57:18 +0000 (08:57 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 10 May 2004 08:57:18 +0000 (08:57 +0000)
lib/hash.c

index 619f2fb1b3871beb9150aa82c3854e30eca81d3c..fcc13ed28f669b412c6c359995ec20a5879964cf 100644 (file)
@@ -127,9 +127,17 @@ mk_hash_element(char *key, size_t key_len, const void *p)
     (curl_hash_element *) malloc(sizeof(curl_hash_element));
 
   if(he) {
-    he->key = strdup(key);
-    he->key_len = key_len;
-    he->ptr = (void *) p;
+    char *dup = strdup(key);
+    if(dup) {
+      he->key = dup;
+      he->key_len = key_len;
+      he->ptr = (void *) p;
+    }
+    else {
+      /* failed to duplicate the key, free memory and fail */
+      free(he);
+      he = NULL;
+    }
   }
   return he;
 }