From 40b9ca0fdd1283f328ad26f1276259526d2cd861 Mon Sep 17 00:00:00 2001 From: Baitinq Date: Sun, 5 Jan 2025 12:16:50 +0100 Subject: fix memory bug in hashmap implementation --- lib/hashtable.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/hashtable.c b/lib/hashtable.c index f9f9873..98d9805 100644 --- a/lib/hashtable.c +++ b/lib/hashtable.c @@ -79,12 +79,12 @@ int hashtable_put(HashTable ht, char* key, void* val, size_t val_size) { int index = hash(key, ht_impl->capacity); HashTableBucket* bucket = &ht_impl->buckets[index]; - //TODO: reuse the deleted? for (int i = 0; i < bucket->length; ++i) { HashTableData* data = &bucket->data[i]; if (strcmp(data->key, key) == 0) { - data->data = val; + data->data = realloc(data->data, val_size); + memcpy(data->data, val, val_size); data->deleted = 0; return 0; } -- cgit 1.4.1