This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] objcopy.c (set_pe_subsystem): plug memory leak


Richard Sandiford wrote:
Michael Snyder <msnyder@vmware.com> writes:
2011-03-08 Michael Snyder <msnyder@vmware.com>

	* objcopy.c (set_pe_subsystem): Keep temp copy of "copy", so we
	can free it before returning.

Index: objcopy.c
===================================================================
RCS file: /cvs/src/src/binutils/objcopy.c,v
retrieving revision 1.149
diff -u -p -r1.149 objcopy.c
--- objcopy.c 28 Feb 2011 18:32:51 -0000 1.149
+++ objcopy.c 8 Mar 2011 19:26:36 -0000
@@ -3076,7 +3076,7 @@ strip_main (int argc, char *argv[])
static void
set_pe_subsystem (const char *s)
{
- const char *version, *subsystem;
+ const char *version, *subsystem, *tmp = NULL;
size_t i;
static const struct
{
@@ -3110,6 +3110,7 @@ set_pe_subsystem (const char *s)
int len = version - s;
copy = xstrdup (s);
subsystem = copy;
+ tmp = copy; /* Keep so we can free memory. */
copy[len] = '\0';
version = copy + 1 + len;
pe_major_subsystem_version = strtoul (version, &copy, 0);
@@ -3157,6 +3158,7 @@ set_pe_subsystem (const char *s)
pe_section_alignment = PE_DEF_SECTION_ALIGNMENT;
break;
}
+ free (tmp);
}
/* Convert EFI target to PEI target. */

I'd prefer


  if (s != subsystem)
    free (subsystem);

OK if that works.

Done.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]