diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2024-04-15 17:42:12 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2024-05-04 08:35:27 +0000 |
commit | 3eba7b53bf067508197e2455b81fc1375b1d945e (patch) | |
tree | 29e31e332aee91e25bd4487c62462ea8777d099b /src/target | |
parent | c72afedce794a7251fd9c822e3bfc89f870b9fc1 (diff) | |
download | riscv-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
Diffstat (limited to 'src/target')
-rw-r--r-- | src/target/smp.c | 2 |
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; |