From 218f6c0181633057a892a8724c506b10b9f6afaa Mon Sep 17 00:00:00 2001 From: eolson Date: Thu, 22 Jun 2023 13:02:21 -0500 Subject: [PATCH] target/riscv: Add null pointer check before right shift for bscan tunneling. Change-Id: I5d4764c777f33d48705b3e5273eb840c13cfbfb7 Signed-off-by: eolson Reviewed-on: https://review.openocd.org/c/openocd/+/7814 Reviewed-by: Antonio Borneo Tested-by: jenkins Reviewed-by: Jan Matyas --- src/target/riscv/batch.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/target/riscv/batch.c b/src/target/riscv/batch.c index 8ec043efb..d39967e4d 100644 --- a/src/target/riscv/batch.c +++ b/src/target/riscv/batch.c @@ -115,8 +115,10 @@ int riscv_batch_run(struct riscv_batch *batch) if (bscan_tunnel_ir_width != 0) { /* need to right-shift "in" by one bit, because of clock skew between BSCAN TAP and DM TAP */ - for (size_t i = 0; i < batch->used_scans; ++i) - buffer_shr((batch->fields + i)->in_value, DMI_SCAN_BUF_SIZE, 1); + for (size_t i = 0; i < batch->used_scans; ++i) { + if ((batch->fields + i)->in_value) + buffer_shr((batch->fields + i)->in_value, DMI_SCAN_BUF_SIZE, 1); + } } for (size_t i = 0; i < batch->used_scans; ++i)