]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pds_core: ensure null-termination for firmware version strings
authorNikhil P. Rao <nikhil.rao@amd.com>
Wed, 20 May 2026 20:58:42 +0000 (20:58 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 21 May 2026 15:21:11 +0000 (08:21 -0700)
The driver passes fw_version directly to devlink_info_version_stored_put()
without ensuring null-termination. While current firmware null-terminates
these strings, the driver should not rely on this behavior. Add explicit
null-termination to prevent potential issues if firmware behavior changes.

Fixes: 45d76f492938 ("pds_core: set up device and adminq")
Signed-off-by: Nikhil P. Rao <nikhil.rao@amd.com>
Link: https://patch.msgid.link/20260520205842.1486718-1-nikhil.rao@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/amd/pds_core/devlink.c

index b576be626a2948986e454676d57e92edd62d2cb7..3f0e56b951bf0b1c959cbdf5890cb48a1e073cf7 100644 (file)
@@ -122,12 +122,14 @@ int pdsc_dl_info_get(struct devlink *dl, struct devlink_info_req *req,
 
        listlen = min(fw_list.num_fw_slots, ARRAY_SIZE(fw_list.fw_names));
        for (i = 0; i < listlen; i++) {
+               char *fw_ver = fw_list.fw_names[i].fw_version;
+
                if (i < ARRAY_SIZE(fw_slotnames))
                        strscpy(buf, fw_slotnames[i], sizeof(buf));
                else
                        snprintf(buf, sizeof(buf), "fw.slot_%d", i);
-               err = devlink_info_version_stored_put(req, buf,
-                                                     fw_list.fw_names[i].fw_version);
+               fw_ver[sizeof(fw_list.fw_names[i].fw_version) - 1] = '\0';
+               err = devlink_info_version_stored_put(req, buf, fw_ver);
                if (err)
                        return err;
        }