aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxuguangxiao <szgxxu@qq.com>2018-10-23 15:43:11 +0800
committerTomas Vanek <vanekt@fbl.cz>2018-11-10 21:15:39 +0000
commit8262e8a2c03efa5ddcb780da7174210b4c5da7ca (patch)
treeb7ea88bd0ebf14fd4c6897ec9580df2d4747f2cc
parent010b09121ca08f955921654c6a3d405be80afef1 (diff)
downloadriscv-openocd-8262e8a2c03efa5ddcb780da7174210b4c5da7ca.zip
riscv-openocd-8262e8a2c03efa5ddcb780da7174210b4c5da7ca.tar.gz
riscv-openocd-8262e8a2c03efa5ddcb780da7174210b4c5da7ca.tar.bz2
jtag/bitq: array boundary overflow
The for loop inside bitq_path_move function is not correct, this will overflow the cmd->path array and produces an unpredictable result. Change-Id: I81e3bc9ee6d1dd948acd2fe4c667103ac22bb26f Signed-off-by: xuguangxiao <szgxxu@qq.com> Reviewed-on: http://openocd.zylin.com/4733 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
-rw-r--r--src/jtag/drivers/bitq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/jtag/drivers/bitq.c b/src/jtag/drivers/bitq.c
index 66285f7..55dfe0a 100644
--- a/src/jtag/drivers/bitq.c
+++ b/src/jtag/drivers/bitq.c
@@ -123,7 +123,7 @@ static void bitq_path_move(struct pathmove_command *cmd)
{
int i;
- for (i = 0; i <= cmd->num_states; i++) {
+ for (i = 0; i < cmd->num_states; i++) {
if (tap_state_transition(tap_get_state(), false) == cmd->path[i])
bitq_io(0, 0, 0);
else if (tap_state_transition(tap_get_state(), true) == cmd->path[i])