[PATCH 6/6] ath6kl: properly null terminate the firmware string
Kalle Valo
kvalo at qca.qualcomm.com
Tue Jun 17 02:41:21 PDT 2014
The firmware version read from the firmware image is not null terminated and
because of that there were few bytes of garbage after the firmware string:
[10420.164632] ath6kl: ar6004 hw 3.0 usb fw 3.5.0.300-1^A api 4
Add proper null termination to ath6kl_fetch_fw_apin() clean the firmware
version string.
Signed-off-by: Kalle Valo <kvalo at qca.qualcomm.com>
---
drivers/net/wireless/ath/ath6kl/init.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index 3dea97aa9b74..63c0cffd5634 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -942,7 +942,7 @@ static int ath6kl_fetch_fw_api1(struct ath6kl *ar)
static int ath6kl_fetch_fw_apin(struct ath6kl *ar, const char *name)
{
- size_t magic_len, len, ie_len;
+ size_t magic_len, len, ie_len, ver_len;
const struct firmware *fw;
struct ath6kl_fw_ie *hdr;
char filename[100];
@@ -993,8 +993,10 @@ static int ath6kl_fetch_fw_apin(struct ath6kl *ar, const char *name)
switch (ie_id) {
case ATH6KL_FW_IE_FW_VERSION:
- strlcpy(ar->wiphy->fw_version, data,
- sizeof(ar->wiphy->fw_version));
+ /* the string is not null terminated */
+ ver_len = min(ie_len, sizeof(ar->wiphy->fw_version));
+ memcpy(ar->wiphy->fw_version, data, ver_len);
+ ar->wiphy->fw_version[ver_len] = '\0';
ath6kl_dbg(ATH6KL_DBG_BOOT,
"found fw version %s\n",
More information about the ath6kl
mailing list