[PATCH v3 11/33] libctf: fix memory leak on ctf_compress_write error path
Nick Alcock
nick.alcock@oracle.com
Fri Sep 6 23:18:00 GMT 2019
On 7 Sep 2019, Hans-Peter Nilsson verbalised:
> On Fri, 6 Sep 2019, Nick Alcock wrote:
>
>> We were failing to free the compressed-data buffer if compression
>> failed.
>>
>> libctf/
>> * ctf-create.c (ctf_compress_write): Fix leak.
>
> Aren't you removing a call to free in this patch, thus actually
> *introducing* a leak, considering that ctf_free is just a
> wrapper for free?
That had me scratching my head for a moment -- but it's the commit
message (and changelog text) that's wrong. It should be something like
write: avoid double-free on compression error path
>> ---
>> libctf/ctf-create.c | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/libctf/ctf-create.c b/libctf/ctf-create.c
>> index 6189042fdb0..76304f724c7 100644
>> --- a/libctf/ctf-create.c
>> +++ b/libctf/ctf-create.c
>> @@ -1997,7 +1997,6 @@ ctf_compress_write (ctf_file_t *fp, int fd)
>> {
>> ctf_dprintf ("zlib deflate err: %s\n", zError (rc));
>> err = ctf_set_errno (fp, ECTF_COMPRESS);
>> - ctf_free (buf);
>> goto ret;
>> }
This is correct: we free the buffer here:
> ret:
> ctf_free (buf);
> return err;
> }
Fixed locally. Thank you!
More information about the Binutils
mailing list