* [RFA] readelf.c (process_gnu_liblist): Stop memory leak.
@ 2011-03-08 1:42 Michael Snyder
2011-03-14 12:18 ` Richard Sandiford
0 siblings, 1 reply; 5+ messages in thread
From: Michael Snyder @ 2011-03-08 1:42 UTC (permalink / raw)
To: binutils
[-- Attachment #1: Type: text/plain, Size: 5 bytes --]
OK?
[-- Attachment #2: readelf3.txt --]
[-- Type: text/plain, Size: 1094 bytes --]
2011-03-07 Michael Snyder <msnyder@msnyder-server.eng.vmware.com>
* readelf.c (process_gnu_liblist): Stop memory leak.
Index: readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.534
diff -u -p -r1.534 readelf.c
--- readelf.c 1 Mar 2011 00:02:32 -0000 1.534
+++ readelf.c 8 Mar 2011 01:27:07 -0000
@@ -11807,7 +11811,7 @@ process_gnu_liblist (FILE * file)
Elf_Internal_Shdr * section;
Elf_Internal_Shdr * string_sec;
Elf32_External_Lib * elib;
- char * strtab;
+ char * strtab = NULL;
size_t strtab_size;
size_t cnt;
unsigned i;
@@ -11833,6 +11837,7 @@ process_gnu_liblist (FILE * file)
break;
string_sec = section_headers + section->sh_link;
+ free (strtab);
strtab = (char *) get_data (NULL, file, string_sec->sh_offset, 1,
string_sec->sh_size,
_("liblist string table"));
@@ -11886,6 +11891,7 @@ process_gnu_liblist (FILE * file)
}
}
+ free (strtab);
return 1;
}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] readelf.c (process_gnu_liblist): Stop memory leak.
2011-03-08 1:42 [RFA] readelf.c (process_gnu_liblist): Stop memory leak Michael Snyder
@ 2011-03-14 12:18 ` Richard Sandiford
2011-03-14 17:56 ` Michael Snyder
2011-03-30 15:38 ` Nick Clifton
0 siblings, 2 replies; 5+ messages in thread
From: Richard Sandiford @ 2011-03-14 12:18 UTC (permalink / raw)
To: Michael Snyder; +Cc: binutils
Michael Snyder <msnyder@vmware.com> writes:
> OK?
>
> 2011-03-07 Michael Snyder <msnyder@msnyder-server.eng.vmware.com>
>
> * readelf.c (process_gnu_liblist): Stop memory leak.
>
> Index: readelf.c
> ===================================================================
> RCS file: /cvs/src/src/binutils/readelf.c,v
> retrieving revision 1.534
> diff -u -p -r1.534 readelf.c
> --- readelf.c 1 Mar 2011 00:02:32 -0000 1.534
> +++ readelf.c 8 Mar 2011 01:27:07 -0000
> @@ -11807,7 +11811,7 @@ process_gnu_liblist (FILE * file)
> Elf_Internal_Shdr * section;
> Elf_Internal_Shdr * string_sec;
> Elf32_External_Lib * elib;
> - char * strtab;
> + char * strtab = NULL;
> size_t strtab_size;
> size_t cnt;
> unsigned i;
> @@ -11833,6 +11837,7 @@ process_gnu_liblist (FILE * file)
> break;
> string_sec = section_headers + section->sh_link;
>
> + free (strtab);
> strtab = (char *) get_data (NULL, file, string_sec->sh_offset, 1,
> string_sec->sh_size,
> _("liblist string table"));
> @@ -11886,6 +11891,7 @@ process_gnu_liblist (FILE * file)
> }
> }
>
> + free (strtab);
> return 1;
> }
Why not simply free strtab at the same time as elib? That version
is preapproved, if it works.
Richard
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] readelf.c (process_gnu_liblist): Stop memory leak.
2011-03-14 12:18 ` Richard Sandiford
@ 2011-03-14 17:56 ` Michael Snyder
2011-03-14 21:14 ` Michael Snyder
2011-03-30 15:38 ` Nick Clifton
1 sibling, 1 reply; 5+ messages in thread
From: Michael Snyder @ 2011-03-14 17:56 UTC (permalink / raw)
To: Michael Snyder, binutils, richard.sandiford
Richard Sandiford wrote:
> Michael Snyder <msnyder@vmware.com> writes:
>> OK?
>>
>> 2011-03-07 Michael Snyder <msnyder@msnyder-server.eng.vmware.com>
>>
>> * readelf.c (process_gnu_liblist): Stop memory leak.
>>
>> Index: readelf.c
>> ===================================================================
>> RCS file: /cvs/src/src/binutils/readelf.c,v
>> retrieving revision 1.534
>> diff -u -p -r1.534 readelf.c
>> --- readelf.c 1 Mar 2011 00:02:32 -0000 1.534
>> +++ readelf.c 8 Mar 2011 01:27:07 -0000
>> @@ -11807,7 +11811,7 @@ process_gnu_liblist (FILE * file)
>> Elf_Internal_Shdr * section;
>> Elf_Internal_Shdr * string_sec;
>> Elf32_External_Lib * elib;
>> - char * strtab;
>> + char * strtab = NULL;
>> size_t strtab_size;
>> size_t cnt;
>> unsigned i;
>> @@ -11833,6 +11837,7 @@ process_gnu_liblist (FILE * file)
>> break;
>> string_sec = section_headers + section->sh_link;
>>
>> + free (strtab);
>> strtab = (char *) get_data (NULL, file, string_sec->sh_offset, 1,
>> string_sec->sh_size,
>> _("liblist string table"));
>> @@ -11886,6 +11891,7 @@ process_gnu_liblist (FILE * file)
>> }
>> }
>>
>> + free (strtab);
>> return 1;
>> }
>
> Why not simply free strtab at the same time as elib? That version
> is preapproved, if it works.
I have no test for it. Found by static analysis.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] readelf.c (process_gnu_liblist): Stop memory leak.
2011-03-14 17:56 ` Michael Snyder
@ 2011-03-14 21:14 ` Michael Snyder
0 siblings, 0 replies; 5+ messages in thread
From: Michael Snyder @ 2011-03-14 21:14 UTC (permalink / raw)
To: Michael Snyder, binutils, richard.sandiford
Michael Snyder wrote:
> Richard Sandiford wrote:
>> Michael Snyder <msnyder@vmware.com> writes:
>>> OK?
>>>
>>> 2011-03-07 Michael Snyder <msnyder@msnyder-server.eng.vmware.com>
>>>
>>> * readelf.c (process_gnu_liblist): Stop memory leak.
>>>
>>> Index: readelf.c
>>> ===================================================================
>>> RCS file: /cvs/src/src/binutils/readelf.c,v
>>> retrieving revision 1.534
>>> diff -u -p -r1.534 readelf.c
>>> --- readelf.c 1 Mar 2011 00:02:32 -0000 1.534
>>> +++ readelf.c 8 Mar 2011 01:27:07 -0000
>>> @@ -11807,7 +11811,7 @@ process_gnu_liblist (FILE * file)
>>> Elf_Internal_Shdr * section;
>>> Elf_Internal_Shdr * string_sec;
>>> Elf32_External_Lib * elib;
>>> - char * strtab;
>>> + char * strtab = NULL;
>>> size_t strtab_size;
>>> size_t cnt;
>>> unsigned i;
>>> @@ -11833,6 +11837,7 @@ process_gnu_liblist (FILE * file)
>>> break;
>>> string_sec = section_headers + section->sh_link;
>>>
>>> + free (strtab);
>>> strtab = (char *) get_data (NULL, file, string_sec->sh_offset, 1,
>>> string_sec->sh_size,
>>> _("liblist string table"));
>>> @@ -11886,6 +11891,7 @@ process_gnu_liblist (FILE * file)
>>> }
>>> }
>>>
>>> + free (strtab);
>>> return 1;
>>> }
>> Why not simply free strtab at the same time as elib? That version
>> is preapproved, if it works.
>
> I have no test for it. Found by static analysis.
>
... and the testsuite doesn't seem to exercise it.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] readelf.c (process_gnu_liblist): Stop memory leak.
2011-03-14 12:18 ` Richard Sandiford
2011-03-14 17:56 ` Michael Snyder
@ 2011-03-30 15:38 ` Nick Clifton
1 sibling, 0 replies; 5+ messages in thread
From: Nick Clifton @ 2011-03-30 15:38 UTC (permalink / raw)
To: binutils
Hi Guys,
> On 03/14/2011 12:17 PM, Richard Sandiford wrote:
> Michael Snyder<msnyder@vmware.com> writes:
>> OK?
>>
>> 2011-03-07 Michael Snyder<msnyder@msnyder-server.eng.vmware.com>
>>
>> * readelf.c (process_gnu_liblist): Stop memory leak.
>
> Why not simply free strtab at the same time as elib? That version
> is preapproved, if it works.
I have applied this version.
Cheers
Nick
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-03-30 15:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-08 1:42 [RFA] readelf.c (process_gnu_liblist): Stop memory leak Michael Snyder
2011-03-14 12:18 ` Richard Sandiford
2011-03-14 17:56 ` Michael Snyder
2011-03-14 21:14 ` Michael Snyder
2011-03-30 15:38 ` Nick Clifton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).