]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: limit printed string from FW file
authorJohannes Berg <johannes.berg@intel.com>
Sun, 9 Feb 2025 12:34:51 +0000 (14:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:51:04 +0000 (12:51 +0100)
[ Upstream commit e0dc2c1bef722cbf16ae557690861e5f91208129 ]

There's no guarantee here that the file is always with a
NUL-termination, so reading the string may read beyond the
end of the TLV. If that's the last TLV in the file, it can
perhaps even read beyond the end of the file buffer.

Fix that by limiting the print format to the size of the
buffer we have.

Fixes: aee1b6385e29 ("iwlwifi: support fseq tlv and print fseq version")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250209143303.cb5f9d0c2f5d.Idec695d53c6c2234aade306f7647b576c7e3d928@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/iwl-drv.c

index afa89deb7bc3a541f902fdf1acba688f725eaf38..144aa1825286e908421e5fae8c508d27ce700c9c 100644 (file)
@@ -1071,7 +1071,7 @@ static int iwl_parse_tlv_firmware(struct iwl_drv *drv,
 
                        if (tlv_len != sizeof(*fseq_ver))
                                goto invalid_tlv_len;
-                       IWL_INFO(drv, "TLV_FW_FSEQ_VERSION: %s\n",
+                       IWL_INFO(drv, "TLV_FW_FSEQ_VERSION: %.32s\n",
                                 fseq_ver->version);
                        }
                        break;