diff mbox series

drivers: gpio: gpio-ljca: Initialize num before accessing item in ljca_gpio_config

Message ID 20241203141451.342316-1-lihaoyu499@gmail.com (mailing list archive)
State Mainlined
Commit 3396995f9fb6bcbe0004a68118a22f98bab6e2b9
Headers show
Series drivers: gpio: gpio-ljca: Initialize num before accessing item in ljca_gpio_config | expand

Commit Message

Haoyu Li Dec. 3, 2024, 2:14 p.m. UTC
With the new __counted_by annocation in ljca_gpio_packet, the "num"
struct member must be set before accessing the "item" array. Failing to
do so will trigger a runtime warning when enabling CONFIG_UBSAN_BOUNDS
and CONFIG_FORTIFY_SOURCE.

Fixes: 1034cc423f1b ("gpio: update Intel LJCA USB GPIO driver")

Signed-off-by: Haoyu Li <lihaoyu499@gmail.com>
---
 drivers/gpio/gpio-ljca.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bartosz Golaszewski Dec. 5, 2024, 12:10 p.m. UTC | #1
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>


On Tue, 03 Dec 2024 22:14:51 +0800, Haoyu Li wrote:
> With the new __counted_by annocation in ljca_gpio_packet, the "num"
> struct member must be set before accessing the "item" array. Failing to
> do so will trigger a runtime warning when enabling CONFIG_UBSAN_BOUNDS
> and CONFIG_FORTIFY_SOURCE.
> 
> Fixes: 1034cc423f1b ("gpio: update Intel LJCA USB GPIO driver")
> 
> [...]

Applied, thanks!

[1/1] drivers: gpio: gpio-ljca: Initialize num before accessing item in ljca_gpio_config
      commit: 963deccd17d4e538a8bafb1617803746efe910ef

Best regards,
diff mbox series

Patch

diff --git a/drivers/gpio/gpio-ljca.c b/drivers/gpio/gpio-ljca.c
index 503d2441c58f..817ecb12d550 100644
--- a/drivers/gpio/gpio-ljca.c
+++ b/drivers/gpio/gpio-ljca.c
@@ -82,9 +82,9 @@  static int ljca_gpio_config(struct ljca_gpio_dev *ljca_gpio, u8 gpio_id,
 	int ret;
 
 	mutex_lock(&ljca_gpio->trans_lock);
+	packet->num = 1;
 	packet->item[0].index = gpio_id;
 	packet->item[0].value = config | ljca_gpio->connect_mode[gpio_id];
-	packet->num = 1;
 
 	ret = ljca_transfer(ljca_gpio->ljca, LJCA_GPIO_CONFIG, (u8 *)packet,
 			    struct_size(packet, item, packet->num), NULL, 0);