aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2021-12-15 08:44:43 +0000
committerAndriy Gapon <avg@FreeBSD.org>2021-12-15 11:15:50 +0000
commitb6a2aba959c8b30d740c653c96c01fb90a3073f7 (patch)
treec116e8ba36d1134e32a448a6c67e4ec5f49c83a0
parentede576831b818c78d23a9600932e13e47b8fd745 (diff)
downloadsrc-b6a2aba959c8b30d740c653c96c01fb90a3073f7.tar.gz
src-b6a2aba959c8b30d740c653c96c01fb90a3073f7.zip
rk_i2c_transfer: fix off-by-one in check for last message
This also fixes an access beyond msgs array. MFC after: 1 week
-rw-r--r--sys/arm64/rockchip/rk_i2c.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/arm64/rockchip/rk_i2c.c b/sys/arm64/rockchip/rk_i2c.c
index 5ee1b8e96744..55cea8895c43 100644
--- a/sys/arm64/rockchip/rk_i2c.c
+++ b/sys/arm64/rockchip/rk_i2c.c
@@ -539,7 +539,7 @@ rk_i2c_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs)
}
}
/* last message ? */
- last_msg = (i > nmsgs - 1) ||
+ last_msg = (i >= nmsgs - 1) ||
!(msgs[i + 1].flags & IIC_M_NOSTART);
rk_i2c_start_xfer(sc, msgs + i, last_msg);