In some cases (late) errors would exit early without cleanup.  Set
result to 1 (failure) in those cases and fallthrough.  That way we
cleanup and might provide more hints to the user about what was wrong
with the file.

     * src/strip.c (handle_elf): Set result to 1 and fallthrough
     instead of return 1.

Signed-off-by: Mark Wielaard <m...@klomp.org>
---
 src/strip.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/strip.c b/src/strip.c
index 2a2cc801..7f4788b3 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -2543,8 +2543,7 @@ while computing checksum for debug information"));
     {
       error (0, 0, _("%s: error while creating ELF header: %s"),
             output_fname ?: fname, elf_errmsg (-1));
-      cleanup_debug ();
-      return 1;
+      result = 1;
     }
 
   /* The new section header string table index.  */
@@ -2552,8 +2551,7 @@ while computing checksum for debug information"));
     {
       error (0, 0, _("%s: error updating shdrstrndx: %s"),
             output_fname ?: fname, elf_errmsg (-1));
-      cleanup_debug ();
-      return 1;
+      result = 1;
     }
 
   /* We have everything from the old file.  */
@@ -2561,8 +2559,7 @@ while computing checksum for debug information"));
     {
       error (0, 0, _("%s: error while reading the file: %s"),
             fname, elf_errmsg (-1));
-      cleanup_debug ();
-      return 1;
+      result = 1;
     }
 
   /* The ELF library better follows our layout when this is not a
-- 
2.41.0

Reply via email to