[Ocfs2-tools-devel] [PATCH] Fix memleak while calculating number of extents

Goldwyn Rodrigues rgoldwyn at gmail.com
Thu Aug 19 05:47:18 PDT 2010


On Wed, Aug 18, 2010 at 5:25 PM, Sunil Mushran <sunil.mushran at oracle.com> wrote:
> On 08/18/2010 10:09 AM, Goldwyn Rodrigues wrote:
>>
>> While calculating number of extents, the buffers are allocated in a loop
>> but only the last buffer is freed in the end. Fix the memleak by freeing
>> the buffer inside the loop.
>>
>> Found by Joel Becker while reviewing defrag.ocfs2
>>
>> Signed-off-by: Goldwyn Rodrigues<rgoldwyn at suse.de>
>> ---
>> diff --git a/debugfs.ocfs2/commands.c b/debugfs.ocfs2/commands.c
>> index 1f60049..ae12479 100644
>> --- a/debugfs.ocfs2/commands.c
>> +++ b/debugfs.ocfs2/commands.c
>> @@ -2092,6 +2092,7 @@ static errcode_t calc_num_extents(ocfs2_filesys *fs,
>>                        if (ret)
>>                                goto bail;
>>
>> +                       ocfs2_free(&buf);
>>                }
>>
>>                *ne = *ne + extents;
>>
>>
>
> Correct. But the ocfs2_free() after bail needs to be removed.
>

No, what if ocfs2_read_extent_block fails? You would still get a leak.
The ocfs2_free after bail is conditional with respect to buf, so it seems fine.

-- 
Goldwyn



More information about the Ocfs2-tools-devel mailing list