| Description: Off-by-one error in the dwarf_to_unw_regnum function in include/dwarf_i.h in |
| libunwind 1.1 allows local users to have unspecified impact via invalid dwarf opcodes. |
| --- a/external/libunwind/include/dwarf_i.h |
| +++ b/external/libunwind/include/dwarf_i.h |
| @@ -20,7 +20,7 @@ |
| extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH]; |
| /* REG is evaluated multiple times; it better be side-effects free! */ |
| # define dwarf_to_unw_regnum(reg) \ |
| - (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) |
| + (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) |
| #endif |
| |
| #ifdef UNW_LOCAL_ONLY |