From: Nick Clifton Date: Fri, 25 Mar 2011 17:17:03 +0000 (+0000) Subject: * ar.c (delete_members): Plug memory leak. X-Git-Tag: cgen-snapshot-20110401~96 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a1bc0327a3df4e35e5b923913536c31ca85f16dc;p=external%2Fbinutils.git * ar.c (delete_members): Plug memory leak. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index d369ae8..ae56956 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -2,6 +2,7 @@ * strings.c (print_strings): Plug memory leak. * ar.c (move_members): Plug memory leak. + (delete_members): Plug memory leak. 2011-03-25 Pierre Muller diff --git a/binutils/ar.c b/binutils/ar.c index 6320a28..263795f 100644 --- a/binutils/ar.c +++ b/binutils/ar.c @@ -1118,6 +1118,7 @@ delete_members (bfd *arch, char **files_to_delete) bfd_boolean found; bfd_boolean something_changed = FALSE; int match_count; + const char * tmp = NULL; for (; *files_to_delete != NULL; ++files_to_delete) { @@ -1139,8 +1140,10 @@ delete_members (bfd *arch, char **files_to_delete) current_ptr_ptr = &(arch->archive_next); while (*current_ptr_ptr) { - if (FILENAME_CMP (normalize (*files_to_delete, arch), - (*current_ptr_ptr)->filename) == 0) + if (tmp != NULL) + free ((char *) tmp); + tmp = normalize (*files_to_delete, arch); + if (FILENAME_CMP (tmp, (*current_ptr_ptr)->filename) == 0) { ++match_count; if (counted_name_mode @@ -1177,6 +1180,9 @@ delete_members (bfd *arch, char **files_to_delete) write_archive (arch); else output_filename = NULL; + + if (tmp != NULL) + free ((char *) tmp); }