From e640a9ca79f29814235fff388c5460d9b12cb529 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 4 Dec 2020 11:13:37 -0800 Subject: [PATCH] util: Fix memory leak in a hash table unit test. Needed for unit testing with asan enabled. Reviewed-by: Christian Gmeiner Reviewed-by: Adam Jackson Part-of: --- src/util/tests/hash_table/collision.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/util/tests/hash_table/collision.c b/src/util/tests/hash_table/collision.c index c7f8569c265..40143e81ae0 100644 --- a/src/util/tests/hash_table/collision.c +++ b/src/util/tests/hash_table/collision.c @@ -32,13 +32,18 @@ #include #include "hash_table.h" +static void entry_free(struct hash_entry *entry) +{ + free((void *)entry->key); +} + int main(int argc, char **argv) { struct hash_table *ht; - const char *str1 = "test1"; - const char *str2 = "test2"; - const char *str3 = "test3"; + const char *str1 = strdup("test1"); + const char *str2 = strdup("test2"); + const char *str3 = strdup("test3"); struct hash_entry *entry1, *entry2; uint32_t bad_hash = 5; int i; @@ -91,7 +96,7 @@ main(int argc, char **argv) entry2 = _mesa_hash_table_search_pre_hashed(ht, bad_hash, str2); assert(entry2->key == str2); - _mesa_hash_table_destroy(ht, NULL); + _mesa_hash_table_destroy(ht, entry_free); return 0; }