[PATCH] xtensa: fix memory corruption by broken sysregs
Max Filippov
jcmvbkbc@gmail.com
Wed Aug 2 07:56:00 GMT 2017
More information about the Binutils mailing list
Wed Aug 2 07:56:00 GMT 2017
- Previous message (by thread): Teach readelf about IA64 MSB relocs
- Next message (by thread): [PATCH] xtensa: fix memory corruption by broken sysregs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In some xtensa configurations there may be system/user registers in xtensa-modules with negative index. ISA initialization for such config may clobber heap and result in program termination. Don't update lookup table entries for register with negative indices. They are not directly accessible via RSR/WSR/XSR or RUR/WUR, so this change should not affect processing of valid assembly/binary code. bfd/ 2017-08-02 Max Filippov <jcmvbkbc@gmail.com> * xtensa-isa.c (xtensa_isa_init): Don't update lookup table entries for sysregs with negative indices. --- bfd/xtensa-isa.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bfd/xtensa-isa.c b/bfd/xtensa-isa.c index 8da75bea8109..8c6ee88fdeae 100644 --- a/bfd/xtensa-isa.c +++ b/bfd/xtensa-isa.c @@ -292,7 +292,8 @@ xtensa_isa_init (xtensa_isa_status *errno_p, char **error_msg_p) xtensa_sysreg_internal *sreg = &isa->sysregs[n]; is_user = sreg->is_user; - isa->sysreg_table[is_user][sreg->number] = n; + if (sreg->number >= 0) + isa->sysreg_table[is_user][sreg->number] = n; } /* Set up the interface lookup table. */ -- 2.1.4
- Previous message (by thread): Teach readelf about IA64 MSB relocs
- Next message (by thread): [PATCH] xtensa: fix memory corruption by broken sysregs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list