From: Daniel Stenberg Date: Wed, 8 Dec 2021 12:22:44 +0000 (+0100) Subject: hash: add asserts to help detect bad usage X-Git-Tag: curl-7_81_0~90 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8d8f384f32c575f44f0d31020ca9a5378d460852;p=thirdparty%2Fcurl.git hash: add asserts to help detect bad usage For example trying to add entries after the hash has been "cleaned up" Closes #8115 --- diff --git a/lib/hash.c b/lib/hash.c index 12e7aa5f27..f04c462840 100644 --- a/lib/hash.c +++ b/lib/hash.c @@ -110,7 +110,9 @@ Curl_hash_add(struct Curl_hash *h, void *key, size_t key_len, void *p) { struct Curl_hash_element *he; struct Curl_llist_element *le; - struct Curl_llist *l = FETCH_LIST(h, key, key_len); + struct Curl_llist *l; + DEBUGASSERT(h->slots); + l = FETCH_LIST(h, key, key_len); for(le = l->head; le; le = le->next) { he = (struct Curl_hash_element *) le->ptr; @@ -139,7 +141,9 @@ Curl_hash_add(struct Curl_hash *h, void *key, size_t key_len, void *p) int Curl_hash_delete(struct Curl_hash *h, void *key, size_t key_len) { struct Curl_llist_element *le; - struct Curl_llist *l = FETCH_LIST(h, key, key_len); + struct Curl_llist *l; + DEBUGASSERT(h->slots); + l = FETCH_LIST(h, key, key_len); for(le = l->head; le; le = le->next) { struct Curl_hash_element *he = le->ptr; @@ -163,6 +167,7 @@ Curl_hash_pick(struct Curl_hash *h, void *key, size_t key_len) struct Curl_llist *l; if(h) { + DEBUGASSERT(h->slots); l = FETCH_LIST(h, key, key_len); for(le = l->head; le; le = le->next) { struct Curl_hash_element *he = le->ptr;