From ed4e58410446343a485625ee2722144cc23d55a6 Mon Sep 17 00:00:00 2001 From: Tomas Vanek Date: Mon, 3 Feb 2025 21:45:07 +0100 Subject: [PATCH] jtag/core: fix segfault when adapter driver has no reset method xlnx-pcie-xvc and linuxspidev adapter drivers does not implement the reset method. Although it is likely both adapters will implement the method in the near future, avoid segfault and return an error instead. Change-Id: If8ddf165dbc563cf6d64b2094968151075778ba7 Signed-off-by: Tomas Vanek Fixes: commit 8850eb8f2c51 ("swd: get rid of jtag queue to assert/deassert srst") Reviewed-on: https://review.openocd.org/c/openocd/+/8735 Reviewed-by: Antonio Borneo Tested-by: jenkins --- src/jtag/core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/jtag/core.c b/src/jtag/core.c index 89d53aecb..030c173be 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -631,6 +631,13 @@ static int adapter_system_reset(int req_srst) /* Maybe change SRST signal state */ if (jtag_srst != req_srst) { + if (!adapter_driver->reset) { + if (req_srst) + LOG_ERROR("Adapter driver does not implement SRST handling"); + + return ERROR_NOT_IMPLEMENTED; + } + retval = adapter_driver->reset(0, req_srst); if (retval != ERROR_OK) { LOG_ERROR("SRST error");