This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[RFA] (take two): ar.c (map_over_members): Plug memory leak.
- From: Michael Snyder <msnyder at vmware dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Tue, 08 Mar 2011 12:32:22 -0800
- Subject: [RFA] (take two): ar.c (map_over_members): Plug memory leak.
Sorry for the noise. This patch replaces the previous patch for
map_over_members.
OK?
2011-03-08 Michael Snyder <msnyder@vmware.com>
* ar.c (map_over_members): Plug memory leak.
Index: ar.c
===================================================================
RCS file: /cvs/src/src/binutils/ar.c,v
retrieving revision 1.72
diff -u -p -r1.72 ar.c
--- ar.c 8 Dec 2010 05:05:30 -0000 1.72
+++ ar.c 8 Mar 2011 20:30:20 -0000
@@ -199,7 +199,7 @@ map_over_members (bfd *arch, void (*func
match_count = 0;
for (head = arch->archive_next; head; head = head->archive_next)
{
- const char * filename;
+ const char * filename = NULL, * filename2 = NULL;
PROGRESS (1);
filename = head->filename;
@@ -213,11 +213,13 @@ map_over_members (bfd *arch, void (*func
else if (bfd_is_thin_archive (arch))
{
/* Thin archives store full pathnames. Need to normalize. */
+ free (filename);
filename = normalize (filename, arch);
}
- if (filename != NULL
- && !FILENAME_CMP (normalize (*files, arch), filename))
+ free (filename2);
+ filename2 = normalize (*files, arch);
+ if (filename != NULL && !FILENAME_CMP (filename2, filename))
{
++match_count;
if (counted_name_mode
@@ -237,6 +239,8 @@ map_over_members (bfd *arch, void (*func
/* xgettext:c-format */
fprintf (stderr, _("no entry %s in archive\n"), *files);
}
+ free (filename);
+ free (filename2);
}
bfd_boolean operation_alters_arch = FALSE;