Eric Blake wrote:

> According to Eric Blake on 6/7/2009 9:51 PM:
>> According to Jim Meyering on 6/6/2009 2:41 PM:
>>> A few of the function declarations in hash.h could benefit from
>>> gcc's warn_unused_result attribute, so I'm adding it:
>>
>> Including one in hash.c itself:
>>
>> hash.c: In function `hash_delete':
>> hash.c:1015: warning: ignoring return value of `hash_rehash', declared
>> with attribute warn_unused_result
>>
>> We should fix this, and decide whether shrinking the hash table when
>> deletion frees up a bucket is always possible, or else deal with memory
>> allocation failure here, too.
>
> Additionally, it looks like hash_rehash has a memory leak - if new_table
> is allocated, but we later fail to allocate new_entry, the function
> returns immediately without reclaiming new_table.  Which means that even
> if an application is prepared to deal with a false return by trying other
> means to reduce memory usage rather than just giving up with xalloc_die,
> the leaked memory from the previous attempt will interfere.

Good catch.
That is definitely a bug.

Looks like I'll have to write a test for this module after all ;-)


Reply via email to