[Gluster-devel] catching unitialized structures
Kaleb KEITHLEY
kkeithle at redhat.com
Tue Apr 30 14:27:58 UTC 2013
>>
>> I did a quick scan of mem-pool.c but failed to notice anything
>> obvious. If you
>> happen to notice it again, it should be worth a patch.
>
>
> Mem-pool does zero memory, but none of GF_CALLOC, GF_MALLOC, or
> GF_REALLOC do. For example, GF_CALLOC just calls __gf_calloc which just
> calls calloc.
??
from TFM:
The calloc() function allocates memory for an array of nmemb
elements of size bytes each and returns a pointer to the allocated
memory. The memory is set to zero.
>
> 108 req_size = nmemb * size;
> 109 tot_size = req_size + GF_MEM_HEADER_SIZE +
> GF_MEM_TRAILER_SIZE;
> 110
> 111 ptr = calloc (1, tot_size);
>
> The only thing after that is gf_mem_set_acct_info, which doesn't (and
> shouldn't) zero memory. Nonetheless, the assumption you refer to is
> common in code which calls these functions. Code which has been
> converted to use mem-pool is safe, but that leaves a lot of code which
> is still unsafe.
More information about the Gluster-devel
mailing list