From 693b8501e5b1233b87420b1c9d5cbbb3b943b285 Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Sun, 22 Nov 2020 00:15:44 +0100 Subject: [PATCH 1/1] armv4_5: fix segmentation fault in command 'arm reg' Commit fed713104904 ("armv4_5: support weirdo ARMv6 secure monitor mode") introduces the secure mode 28 of ARMv6 as a synonymous of mode 22 (MON), but does not add it in the switch/case in command 'arm reg'. When command 'arm reg' scans the array arm_mode_data[] on targets without secure modes, it does not detect the new secure mode as not supported by the architecture, thus triggers a segmentation fault when it try to read the register's value from unallocated memory. Issue detected with target arm926ejs. Add the new mode in the switch/case and treat it as the mode MON. Change-Id: I2b72cc558e097879a7ee6ea601200bfda6b60270 Signed-off-by: Antonio Borneo Fixes: fed713104904 ("armv4_5: support weirdo ARMv6 secure monitor mode") Reviewed-on: http://openocd.zylin.com/5941 Tested-by: jenkins Reviewed-by: Tarek BOCHKATI --- src/target/armv4_5.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/target/armv4_5.c b/src/target/armv4_5.c index 7da28e349d..8ac4825042 100644 --- a/src/target/armv4_5.c +++ b/src/target/armv4_5.c @@ -869,6 +869,7 @@ COMMAND_HANDLER(handle_armv4_5_reg_command) continue; /* FALLTHROUGH */ case ARM_MODE_MON: + case ARM_MODE_1176_MON: if (arm->core_type != ARM_CORE_TYPE_SEC_EXT && arm->core_type != ARM_CORE_TYPE_VIRT_EXT) continue; -- 2.30.2