The branch main has been updated by markj:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=c983ec6428ecfa362903cbdba1dc9f4303e2f28c

commit c983ec6428ecfa362903cbdba1dc9f4303e2f28c
Author:     Mark Johnston <[email protected]>
AuthorDate: 2021-12-13 23:45:24 +0000
Commit:     Mark Johnston <[email protected]>
CommitDate: 2021-12-13 23:46:59 +0000

    libdwarf: Fix error handling in _dwarf_elf_init()
    
    We were not setting "ret" before jumping to the error path, so the
    function returned success even when it had failed.
    
    Reviewed by:    emaste
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D33420
---
 contrib/elftoolchain/libdwarf/libdwarf_elf_init.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c 
b/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c
index c9b6ae601e0e..68062ee3209f 100644
--- a/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c
+++ b/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c
@@ -398,17 +398,17 @@ _dwarf_elf_init(Dwarf_Debug dbg, Elf *elf, Dwarf_Error 
*error)
                        }
 
                        if ((sh.sh_flags & SHF_COMPRESSED) != 0) {
-                               if (_dwarf_elf_decompress(dbg, e, scn, ed,
-                                   es, error) != DW_DLE_NONE)
+                               if ((ret = _dwarf_elf_decompress(dbg, e, scn,
+                                   ed, es, error)) != DW_DLE_NONE)
                                        goto fail_cleanup;
                        } else {
                                ed->ed_size = ed->ed_data->d_size;
                        }
 
                        if (_libdwarf.applyreloc) {
-                               if (_dwarf_elf_relocate(dbg, elf,
+                               if ((ret = _dwarf_elf_relocate(dbg, elf,
                                    &e->eo_data[j], elf_ndxscn(scn), symtab_ndx,
-                                   symtab_data, error) != DW_DLE_NONE)
+                                   symtab_data, error)) != DW_DLE_NONE)
                                        goto fail_cleanup;
                        }
 

Reply via email to