diff options
author | Alan Modra <amodra@gmail.com> | 2011-05-02 06:04:11 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2011-05-02 06:04:11 +0000 |
commit | 4510857d06b0cfd22754a1714a460768fe8f67df (patch) | |
tree | 19632d8344f7ec520ee4ac661773878aa1b5383e /binutils/ar.c | |
parent | f33edef842b5bec1821a20d94155c7baa98c09c2 (diff) | |
download | gdb-4510857d06b0cfd22754a1714a460768fe8f67df.zip gdb-4510857d06b0cfd22754a1714a460768fe8f67df.tar.gz gdb-4510857d06b0cfd22754a1714a460768fe8f67df.tar.bz2 |
PR binutils/12720
Revert the following change
Michael Snyder <msnyder@vmware.com>
* ar.c (move_members): Plug memory leak.
(delete_members): Plug memory leak.
Diffstat (limited to 'binutils/ar.c')
-rw-r--r-- | binutils/ar.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/binutils/ar.c b/binutils/ar.c index 206c7a9..42cc0c6 100644 --- a/binutils/ar.c +++ b/binutils/ar.c @@ -1119,7 +1119,6 @@ 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) { @@ -1141,10 +1140,8 @@ delete_members (bfd *arch, char **files_to_delete) current_ptr_ptr = &(arch->archive_next); while (*current_ptr_ptr) { - if (tmp != NULL) - free ((char *) tmp); - tmp = normalize (*files_to_delete, arch); - if (FILENAME_CMP (tmp, (*current_ptr_ptr)->filename) == 0) + if (FILENAME_CMP (normalize (*files_to_delete, arch), + (*current_ptr_ptr)->filename) == 0) { ++match_count; if (counted_name_mode @@ -1181,9 +1178,6 @@ delete_members (bfd *arch, char **files_to_delete) write_archive (arch); else output_filename = NULL; - - if (tmp != NULL) - free ((char *) tmp); } @@ -1192,9 +1186,8 @@ delete_members (bfd *arch, char **files_to_delete) static void move_members (bfd *arch, char **files_to_move) { - bfd **after_bfd; /* New entries go after this one. */ - bfd **current_ptr_ptr; /* cdr pointer into contents. */ - const char *tmp = NULL; + bfd **after_bfd; /* New entries go after this one */ + bfd **current_ptr_ptr; /* cdr pointer into contents */ for (; *files_to_move; ++files_to_move) { @@ -1202,11 +1195,8 @@ move_members (bfd *arch, char **files_to_move) while (*current_ptr_ptr) { bfd *current_ptr = *current_ptr_ptr; - - if (tmp != NULL) - free ((char *) tmp); - tmp = normalize (*files_to_move, arch); - if (FILENAME_CMP (tmp, current_ptr->filename) == 0) + if (FILENAME_CMP (normalize (*files_to_move, arch), + current_ptr->filename) == 0) { /* Move this file to the end of the list - first cut from where it is. */ @@ -1230,13 +1220,10 @@ move_members (bfd *arch, char **files_to_move) /* xgettext:c-format */ fatal (_("no entry %s in archive %s!"), *files_to_move, arch->filename); - next_file: - ; + next_file:; } write_archive (arch); - if (tmp != NULL) - free ((char *) tmp); } /* Ought to default to replacing in place, but this is existing practice! */ |