aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2024-04-15 17:42:12 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2024-05-04 08:35:27 +0000
commit3eba7b53bf067508197e2455b81fc1375b1d945e (patch)
tree29e31e332aee91e25bd4487c62462ea8777d099b
parentc72afedce794a7251fd9c822e3bfc89f870b9fc1 (diff)
downloadriscv-openocd-3eba7b53bf067508197e2455b81fc1375b1d945e.zip
riscv-openocd-3eba7b53bf067508197e2455b81fc1375b1d945e.tar.gz
riscv-openocd-3eba7b53bf067508197e2455b81fc1375b1d945e.tar.bz2
smp: fix SIGSEGV for "smp off" during target examine
The gdb subsystem is initialized after the first target examine, so the field struct target::gdb_service is NULL during examine. A command "smp off" in the examine event handler causes a SIGSEGV during OpenOCD startup. Check for pointer not NULL before dereferencing it. Change-Id: Id115e28be23a957fef1b97ab66d7273f0ea0dce4 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8216 Tested-by: jenkins
-rw-r--r--src/target/smp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/target/smp.c b/src/target/smp.c
index 50b19d0..41ca880 100644
--- a/src/target/smp.c
+++ b/src/target/smp.c
@@ -119,7 +119,7 @@ COMMAND_HANDLER(default_handle_smp_command)
head->target->smp = 0;
/* fixes the target display to the debugger */
- if (!list_empty(target->smp_targets))
+ if (!list_empty(target->smp_targets) && target->gdb_service)
target->gdb_service->target = target;
return ERROR_OK;