From 8db6dff333c2803d339086c7d5694eac4da11d0a Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Mon, 19 Sep 2022 14:37:24 +0200 Subject: [PATCH] target/riscv-013: fix unchecked return code Scan-build complains about variable 'sbcs_orig' that can be used not initialized. Logic error: Assigned value is garbage or undefined riscv-013.c:4468 Assigned value is garbage or undefined This is caused by not checking the return value of the call riscv-013.c:4466 dmi_read(target, &sbcs_orig, DM_SBCS); In fact when dmi_read() returns error, the variable 'sbcs_orig' is not assigned. Check the returned value. Change-Id: Ia9032a0229aa243138f95f4e13f765726a4ceae9 Signed-off-by: Antonio Borneo Reviewed-on: https://review.openocd.org/c/openocd/+/7205 Reviewed-by: Tim Newsome Reviewed-by: Jan Matyas Tested-by: jenkins --- src/target/riscv/riscv-013.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/target/riscv/riscv-013.c b/src/target/riscv/riscv-013.c index 2c762e337..1f4c34346 100644 --- a/src/target/riscv/riscv-013.c +++ b/src/target/riscv/riscv-013.c @@ -4463,7 +4463,9 @@ static int riscv013_test_sba_config_reg(struct target *target, uint32_t rd_val; uint32_t sbcs_orig; - dmi_read(target, &sbcs_orig, DM_SBCS); + int retval = dmi_read(target, &sbcs_orig, DM_SBCS); + if (retval != ERROR_OK) + return retval; uint32_t sbcs = sbcs_orig; bool test_passed; -- 2.30.2