Looking at the code snippet, there could also be a kind of "UNW_LAST_REG" value defined in architecture specific code. The "port me" complain would then be if this value is not defined.
Best regards Frederic Berat Software Group I (ADITG/SW1) Tel. +49 5121 49 6935 > -----Original Message----- > From: Libunwind-devel [mailto:libunwind-devel-bounces+fberat=de.adit- > [email protected]] On Behalf Of Mike Frysinger > Sent: Dienstag, 14. Februar 2017 03:33 > To: [email protected] > Subject: [Libunwind-devel] [PATCH] coredump: simplify bad regnum checks a > little > > We always want to reject negative regnums since we use it as an index, so > make it a common check at the top for all arches. > --- > src/coredump/_UCD_access_reg_linux.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/src/coredump/_UCD_access_reg_linux.c > b/src/coredump/_UCD_access_reg_linux.c > index 4b5994fad438..208d8d27b658 100644 > --- a/src/coredump/_UCD_access_reg_linux.c > +++ b/src/coredump/_UCD_access_reg_linux.c > @@ -39,17 +39,20 @@ _UCD_access_reg (unw_addr_space_t as, > return -UNW_EINVAL; > } > > + if (regnum < 0) > + goto badreg; > + > #if defined(UNW_TARGET_AARCH64) > - if (regnum < 0 || regnum >= UNW_AARCH64_FPCR) > + if (regnum >= UNW_AARCH64_FPCR) > goto badreg; > #elif defined(UNW_TARGET_ARM) > - if (regnum < 0 || regnum >= 16) > + if (regnum >= 16) > goto badreg; > #elif defined(UNW_TARGET_SH) > - if (regnum < 0 || regnum > UNW_SH_PR) > + if (regnum > UNW_SH_PR) > goto badreg; > #elif defined(UNW_TARGET_TILEGX) > - if (regnum < 0 || regnum > UNW_TILEGX_CFA) > + if (regnum > UNW_TILEGX_CFA) > goto badreg; > #else > #if defined(UNW_TARGET_MIPS) > @@ -120,7 +123,7 @@ _UCD_access_reg (unw_addr_space_t as, #error > Port me #endif > > - if (regnum < 0 || regnum >= (unw_regnum_t)ARRAY_SIZE(remap_regs)) > + if (regnum >= (unw_regnum_t)ARRAY_SIZE(remap_regs)) > goto badreg; > > regnum = remap_regs[regnum]; > -- > 2.11.0 > > > _______________________________________________ > Libunwind-devel mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/libunwind-devel _______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
