Browse Source

Call cleanup on bfd_check_format_matches error exit

* format.c (bfd_check_format_matches): Call cleanup on error exit.
binutils-2_35-branch
Alan Modra 7 years ago
parent
commit
1039fd9ac2
  1. 4
      bfd/ChangeLog
  2. 4
      bfd/format.c

4
bfd/ChangeLog

@ -1,3 +1,7 @@
2020-03-04 Alan Modra <amodra@gmail.com>
* format.c (bfd_check_format_matches): Call cleanup on error exit.
2020-03-03 Alan Modra <amodra@gmail.com>
* format.c (struct bfd_preserve): Add cleanup field.

4
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);

Loading…
Cancel
Save