Curl_hash_add() was modified to clear up better in case of internal failure.

When failing, it should not tamper at all with the data it was supposed to
add to the cache.
This commit is contained in:
Daniel Stenberg 2004-05-10 09:17:50 +00:00
parent 00557a5475
commit 887d78a9ad

@ -169,8 +169,14 @@ Curl_hash_add(curl_hash *h, char *key, size_t key_len, void *p)
++h->size;
return p; /* return the new entry */
}
/* couldn't insert it, destroy the 'he' element again */
hash_element_dtor(h, he);
/*
* Couldn't insert it, destroy the 'he' element and the key again. We
* don't call hash_element_dtor() since that would also call the
* "destructor" for the actual data 'p'. When we fail, we shall not touch
* that data.
*/
free(he->key);
free(he);
}
return NULL; /* failure */