This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Call cleanup on bfd_check_format_matches error exit
- From: Alan Modra <amodra at gmail dot com>
- To: binutils at sourceware dot org
- Date: Wed, 4 Mar 2020 11:47:49 +1030
- Subject: Call cleanup on bfd_check_format_matches error exit
Another tidy of memory.
* format.c (bfd_check_format_matches): Call cleanup on error exit.
diff --git a/bfd/format.c b/bfd/format.c
index 61f26c6042..ab98486fb4 100644
--- a/bfd/format.c
+++ b/bfd/format.c
@@ -515,6 +515,8 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
err_unrecog:
bfd_set_error (bfd_error_file_not_recognized);
err_ret:
+ if (cleanup)
+ cleanup (abfd);
abfd->xvec = save_targ;
abfd->format = bfd_unknown;
if (matching_vector)
@@ -544,6 +546,8 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
}
else if (matching_vector)
free (matching_vector);
+ if (cleanup)
+ cleanup (abfd);
if (preserve_match.marker != NULL)
bfd_preserve_finish (abfd, &preserve_match);
bfd_preserve_restore (abfd, &preserve);
--
Alan Modra
Australia Development Lab, IBM