From 36610fb6977dc430cd3b7fe26e82f774ba21cf81 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Thu, 19 Nov 2015 11:05:15 +0100 Subject: [PATCH] fix regression from 2d549662be832da838aa063da2efa78ee3b99668 That commit introduced read-only keys, but when the hash table was resized, that attribute was not preserved. This resulted in an invalid free at time of table destruction. --- linkhash.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/linkhash.c b/linkhash.c index 9457fb7..e19297e 100644 --- a/linkhash.c +++ b/linkhash.c @@ -506,7 +506,9 @@ void lh_table_resize(struct lh_table *t, int new_size) new_t = lh_table_new(new_size, NULL, t->hash_fn, t->equal_fn); ent = t->head; while(ent) { - lh_table_insert(new_t, ent->k, ent->v); + lh_table_insert_w_hash(new_t, ent->k, ent->v, + lh_get_hash(new_t, ent->k), + (ent->k_is_constant) ? JSON_C_OBJECT_KEY_IS_CONSTANT : 0 ); ent = ent->next; } free(t->table); -- 2.49.0