]> 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 12:02:00 +0000 (13:02 +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 c620911a11933a988df4031b1f2ded16769e834b..754e01688900d36730b5e11667f670727129d844 100644 (file)
@@ -1197,7 +1197,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;