]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
gpio: ljca: Initialize num before accessing item in ljca_gpio_config
authorHaoyu Li <lihaoyu499@gmail.com>
Tue, 3 Dec 2024 14:14:51 +0000 (22:14 +0800)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 6 Dec 2024 18:04:42 +0000 (19:04 +0100)
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")
Cc: stable@vger.kernel.org
Signed-off-by: Haoyu Li <lihaoyu499@gmail.com>
Link: https://lore.kernel.org/stable/20241203141451.342316-1-lihaoyu499%40gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-ljca.c

index d67b912d884ddb1ffc33fcfa2f513e252ca600b3..c6c31e6146c7660022902020046497f30eef143b 100644 (file)
@@ -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);