]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Jun 2026 15:46:33 +0000 (17:46 +0200)
[ Upstream commit 3d4432d34c1992701289cbe12df9fd024f315998 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/amd/pds_core/devlink.c

index d8dc39da4161fb5701d80ba2b7a96e7065f7397d..621791a3c543be4a2c8e762d883143bcef01d1da 100644 (file)
@@ -121,12 +121,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;
        }