]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/x86: dell_rbu: avoid uninit value usage in packet_size_write()
authorFedor Pchelkin <pchelkin@ispras.ru>
Fri, 3 Apr 2026 13:42:39 +0000 (16:42 +0300)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 9 Apr 2026 11:56:33 +0000 (14:56 +0300)
Ensure the temp value has been properly parsed from the user-provided
buffer and initialized to be used in later operations.  While at it,
prefer a convenient kstrtoul() helper.

Found by Linux Verification Center (linuxtesting.org) with Svace static
analysis tool.

Fixes: ad6ce87e5bd4 ("[PATCH] dell_rbu: changes in packet update mechanism")
Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
Link: https://patch.msgid.link/20260403134240.604837-1-pchelkin@ispras.ru
[ij: add include]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/dell/dell_rbu.c

index eb50f1d75d0c135f33b24f977bd5b39dad04e71e..3fa9de9aa47b809edab69ca2e8fecfaa9405d823 100644 (file)
@@ -30,6 +30,7 @@
 #define pr_fmt(fmt)    KBUILD_MODNAME ": " fmt
 
 #include <linux/init.h>
+#include <linux/kstrtox.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/string.h>
@@ -619,9 +620,12 @@ static ssize_t packet_size_write(struct file *filp, struct kobject *kobj,
                                 char *buffer, loff_t pos, size_t count)
 {
        unsigned long temp;
+
+       if (kstrtoul(buffer, 10, &temp))
+               return -EINVAL;
+
        spin_lock(&rbu_data.lock);
        packet_empty_list();
-       sscanf(buffer, "%lu", &temp);
        if (temp < 0xffffffff)
                rbu_data.packetsize = temp;