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:
parent
00557a5475
commit
887d78a9ad
10
lib/hash.c
10
lib/hash.c
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user