From d14597f1eebfa67a69206898e671177d7af7672f Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 17 Feb 2020 17:55:29 -0800 Subject: [PATCH] Core: Fix crash modifying hash table entry (fixes #1673) --- CHANGES | 1 + src/util/table.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 16c20e19e..de2accb11 100644 --- a/CHANGES +++ b/CHANGES @@ -13,6 +13,7 @@ Emulation fixes: Other fixes: - Core: Ensure ELF regions can be written before trying - Core: Fix ELF loading regression (fixes mgba.io/i/1669) + - Core: Fix crash modifying hash table entry (fixes mgba.io/i/1673) - Debugger: Don't skip undefined instructions when debugger attached - Qt: Force OpenGL paint engine creation thread (fixes mgba.io/i/1642) Misc: diff --git a/src/util/table.c b/src/util/table.c index 20f4e159b..f4a85557f 100644 --- a/src/util/table.c +++ b/src/util/table.c @@ -187,7 +187,9 @@ void HashTableInsert(struct Table* table, const char* key, void* value) { struct TableList* list; TABLE_LOOKUP_START(HASH_TABLE_COMPARATOR, list, hash) { if (value != lookupResult->value) { - table->deinitializer(lookupResult->value); + if (table->deinitializer) { + table->deinitializer(lookupResult->value); + } lookupResult->value = value; } return;