]> granicus.if.org Git - curl/commitdiff
if Curl_hash_add() returns NULL, we shall not free the addrinfo field as that
authorDaniel Stenberg <daniel@haxx.se>
Mon, 15 Dec 2003 15:22:10 +0000 (15:22 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 15 Dec 2003 15:22:10 +0000 (15:22 +0000)
is made in the hash function in the case of failure (using the already setup
'dtor' function).

lib/hostip.c

index 114525c3de509c909d95510f2b6aeecb747da38f..f2fa350d0752e9b477ae59ccd1a649a9542d1953 100644 (file)
@@ -237,10 +237,10 @@ cache_resolv_response(struct SessionHandle *data,
   /* Store the resolved data in our DNS cache. This function may return a
      pointer to an existing struct already present in the hash, and it may
      return the same argument we pass in. Make no assumptions. */
-  dns = Curl_hash_add(data->hostcache, entry_id, entry_len+1, (void *) dns);
+  dns = Curl_hash_add(data->hostcache, entry_id, entry_len+1, (void *)dns);
   if(!dns) {
-    /* major badness, run away! */
-    Curl_freeaddrinfo(addr);
+    /* Major badness, run away. When this happens, the 'dns' data has
+       already been cleared up by Curl_hash_add(). */
     free(entry_id);
     return NULL;
   }