From f5c0d77088ee2878813861b5b72fa64001f1831a Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 6 Jun 2023 09:50:56 +0930 Subject: [PATCH] objcopy memory leaks after errors These aren't important at all, but tidy them in case they obscure other more important leaks. * objcopy (copy_file): Close input bfd after errors. --- binutils/objcopy.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/binutils/objcopy.c b/binutils/objcopy.c index ac40da87018..414007780a8 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -3821,6 +3821,8 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, if (ibfd == NULL || bfd_stat (ibfd, in_stat) != 0) { bfd_nonfatal_message (input_filename, NULL, NULL, NULL); + if (ibfd != NULL) + bfd_close (ibfd); status = 1; return; } @@ -3890,6 +3892,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, { close (ofd); bfd_nonfatal_message (output_filename, NULL, NULL, NULL); + bfd_close (ibfd); status = 1; return; } @@ -3922,6 +3925,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, { close (ofd); bfd_nonfatal_message (output_filename, NULL, NULL, NULL); + bfd_close (ibfd); status = 1; return; } @@ -3970,6 +3974,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, if (core_error == bfd_error_file_ambiguously_recognized) list_matching_formats (core_matching); + bfd_close (ibfd); status = 1; } } -- 2.30.2