diff options
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | hash.c | 4 |
2 files changed, 4 insertions, 1 deletions
@@ -22,4 +22,5 @@ Ralf Paffrath Simon Leinen Simon Lundström Stefan Winter +Stephen Röttger Stig Venaas @@ -87,6 +87,7 @@ void *hash_read(struct hash *h, void *key, uint32_t keylen) { void *hash_extract(struct hash *h, void *key, uint32_t keylen) { struct list_node *ln; struct hash_entry *e; + void *data; if (!h) return 0; @@ -96,9 +97,10 @@ void *hash_extract(struct hash *h, void *key, uint32_t keylen) { if (e->keylen == keylen && !memcmp(e->key, key, keylen)) { free(e->key); list_removedata(h->hashlist, e); + data = e->data; free(e); pthread_mutex_unlock(&h->mutex); - return e->data; + return data; } } pthread_mutex_unlock(&h->mutex); |