From patchwork Sun Mar 15 12:55:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Matthias_M=C3=A4nnich?= X-Patchwork-Id: 39037 From: maennich@google.com (Matthias Maennich) Date: Sun, 15 Mar 2020 13:55:12 +0100 Subject: [PATCH 2/2] dwarf-reader: remove superfluous ABG_ASSERT In-Reply-To: <20200315125512.256054-1-maennich@google.com> References: <20200315125512.256054-1-maennich@google.com> Message-ID: <20200315125512.256054-2-maennich@google.com> maybe_adjust_et_rel_sym_addr_to_abs_addr contained an ABG_ASSERT to ensure symbol_section is not used on an invalid value. Since maybe_adjust_et_rel_sym_addr_to_abs_addr handles this case, this assert can be removed. * src/abg-dwarf-reader.cc (maybe_adjust_et_rel_sym_addr_to_abs_addr): improve NULL check, remove superfluous ABG_ASSERT * tests/data/Makefile.am: Add new test case to the distribution. * tests/test-read-dwarf.cc: Likewise. * tests/data/test-read-dwarf/test27-bogus-binary.elf: New test case. Signed-off-by: Matthias Maennich --- src/abg-dwarf-reader.cc | 3 +-- tests/data/Makefile.am | 1 + .../data/test-read-dwarf/test27-bogus-binary.elf | Bin 0 -> 1024 bytes tests/test-read-dwarf.cc | 6 ++++++ 4 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 tests/data/test-read-dwarf/test27-bogus-binary.elf diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index 3454fcf5cf7c..ff532cfd244e 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -8585,7 +8585,7 @@ public: GElf_Addr maybe_adjust_et_rel_sym_addr_to_abs_addr(GElf_Addr addr, Elf_Scn *section) { - if (section == 0) + if (!section) return addr; Elf* elf = elf_handle(); @@ -8623,7 +8623,6 @@ public: maybe_adjust_et_rel_sym_addr_to_abs_addr(GElf_Sym *sym) { Elf_Scn *symbol_section = elf_getscn(elf_handle(), sym->st_shndx); - ABG_ASSERT(symbol_section); GElf_Addr result = sym->st_value; result = maybe_adjust_et_rel_sym_addr_to_abs_addr(result, symbol_section); return result; diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 802b709fc5f5..3c819b26ad3f 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -437,6 +437,7 @@ test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0 \ test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi \ test-read-dwarf/test25-bogus-binary.elf \ test-read-dwarf/test26-bogus-binary.elf \ +test-read-dwarf/test27-bogus-binary.elf \ \ test-annotate/test0.abi \ test-annotate/test1.abi \ diff --git a/tests/data/test-read-dwarf/test27-bogus-binary.elf b/tests/data/test-read-dwarf/test27-bogus-binary.elf new file mode 100644 index 0000000000000000000000000000000000000000..3240f53915c60f9c9808a6bff9f958b8a136eece GIT binary patch literal 1024 zcmb<-^>JflWbAif0D+kd?En9_%m4rXkCA}|ECM3)Ud_M9@FCXnzbC^vCLrHK^%PhR zS%E%Kf%X3e77d`Fk&&^1nUR?i7H}6TrU;iag0l!Q?5_Xcbtinrk;q3C>w0SMOE82S zf@oPS2h*wrWGKTp$TS0x^B)50lo%MnE>}=u0QrVNNdQ?T7B)~HNF6t(lp-5QzlE_W zlBJi?lmRVk_y-aTQIq4_z-7^!8}gSy*!0K8hdVQ0tqPN}dFt5yUwD;9ae;xs)YYF{ zE=>CFv)jCiOd!DLp>TS6Np{-Re_1hAPj@xgc}Yy%eKJuknM?zr+B67)-9S5VDf;k> zg@5|=;;4_SH?3LgkTK)Qt4X>ync5OQCk=uuY IRA}x~0RO9kcmMzZ literal 0 HcmV?d00001 diff --git a/tests/test-read-dwarf.cc b/tests/test-read-dwarf.cc index a8ea0619ccbb..7c99d21889d0 100644 --- a/tests/test-read-dwarf.cc +++ b/tests/test-read-dwarf.cc @@ -265,6 +265,12 @@ InOutSpec in_out_specs[] = "", "", }, + { + "data/test-read-dwarf/test27-bogus-binary.elf", + "", + "", + "", + }, // This should be the last entry. {NULL, NULL, NULL, NULL} };