From: Rainer Gerhards Date: Thu, 19 Nov 2015 10:05:15 +0000 (+0100) Subject: fix regression from 2d549662be832da838aa063da2efa78ee3b99668 X-Git-Tag: json-c-0.13-20171207~177^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=36610fb6977dc430cd3b7fe26e82f774ba21cf81;p=json-c 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. --- 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);