Browse Source

fix regression from 2d549662be

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.
tags/json-c-0.13-20171207
Rainer Gerhards 10 years ago
parent
commit
36610fb697
1 changed files with 3 additions and 1 deletions
  1. +3
    -1
      linkhash.c

+ 3
- 1
linkhash.c View File

@@ -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);


Loading…
Cancel
Save