]> 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:47:38 +0000 (12:47 +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 bf00c2fede7469dd329326767ee61d7142c6dfcc..47eea2c2a739e49e850fd17007401c038623ed60 100644 (file)
@@ -1127,7 +1127,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;