src/hash.c:783: var_assign: Assigning: "new_table" = storage returned from
"hash_initialize(candidate, table->tuning, table->hasher,
table->comparator, table->data_freer)".
src/hash.c:816: leaked_storage: Variable "new_table" going out of scope
leaks the storage it points to.
src/html.c:428: var_assign: Assigning: "table" = storage returned from
"hash_initialize(0U, NULL, code_hash, code_compare, NULL)".
src/html.c:436: leaked_storage: Variable "table" going out of scope
leaks the storage it points to.
src/html.c:609: var_assign: Assigning: "table" = storage returned from
"hash_initialize(0U, NULL, string_hash, string_compare, NULL)".
src/html.c:617: leaked_storage: Variable "table" going out of scope
leaks the storage it points to.
src/request.c:758: var_assign: Assigning: "new" = storage returned from
"recode_malloc(outer, 16UL)".
src/request.c:768: leaked_storage: Variable "new" going out of scope
leaks the storage it points to.
struct hash_entry *new_entry = allocate_entry (new_table);
if (new_entry == NULL)
- return false;
+ {
+ hash_free (new_table);
+ return false;
+ }
new_entry->data = data;
new_entry->next = new_bucket->next;
if (cursor->flags & mask
&& (!request->diacritics_only || cursor->code > 128))
if (!hash_insert (table, cursor))
- return false;
+ {
+ hash_free (table);
+ return false;
+ }
step->step_type = RECODE_UCS2_TO_STRING;
step->step_table = table;
if (cursor->flags & mask
&& (!request->diacritics_only || cursor->code > 128))
if (!hash_insert (table, cursor))
- return false;
+ {
+ hash_free (table);
+ return false;
+ }
step->step_type = RECODE_STRING_TO_UCS2;
step->step_table = table;
scan_identifier (request);
ALLOC (copy, strlen (request->scanned_string) + 1, char);
if (!copy)
- break; /* FIXME: should interrupt decoding */
+ {
+ free (new);
+ break; /* FIXME: should interrupt decoding */
+ }
strcpy (copy, request->scanned_string);
new_->option = copy;