]> 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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Dec 2024 17:13:01 +0000 (18:13 +0100)
commit 3396995f9fb6bcbe0004a68118a22f98bab6e2b9 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpio/gpio-ljca.c

index dfec9fbfc7a9bd8a98916a5ad2676aa380470852..c2a9b425397441055c81187a147e590375fbc6c2 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);