From: Alan Modra Date: Wed, 4 Mar 2020 00:57:29 +0000 (+1030) Subject: Call cleanup on bfd_check_format_matches error exit X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=1039fd9ac2a57b7634f60a66ea51e64f5ff69251;p=deliverable%2Fbinutils-gdb.git Call cleanup on bfd_check_format_matches error exit * format.c (bfd_check_format_matches): Call cleanup on error exit. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ff2881f966..6ed228d713 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2020-03-04 Alan Modra + + * format.c (bfd_check_format_matches): Call cleanup on error exit. + 2020-03-03 Alan Modra * format.c (struct bfd_preserve): Add cleanup field. 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);