Hi,

This is not causing a memory leak.

The man page of realloc says that:

if size is equal to zero, and  ptr  is not NULL, then the call is equivalent to 
free(ptr).

My only concern about this way of freeing is about that post:

https://www.securecoding.cert.org/confluence/display/seccode/MEM04-C.+Do+not+perform+zero-length+allocations

?

Best Regards,

- KA

On 2013-02-20, at 10:50 AM, Alexander Klauer wrote:

> Hi,
> 
> On 02/20/2013 04:42 PM, Alexander Klauer wrote:
>> 
>> in ev.c, there is the definition
>> 
>> #define ev_free(ptr)    ev_realloc ((ptr), 0)
>> 
>> This causes a memory leak on systems where zero-sized objects are being kept 
>> track of. Therefore, I suggest this definition to be changed to
>> 
>> #define ev_free(ptr)    free ((ptr))
>> 
> 
> alternatively, one might also change ev_realloc_emul() in the same file to 
> keep only the #else part of the #ifdef __GLIBC__. This might be the better 
> solution if there are non-standard systems out there which do not properly 
> implement free(0).
> 
> Best regards,
> Alexander
> 
> _______________________________________________
> libev mailing list
> [email protected]
> http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev


_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to