From: Viktor Korsnes <viktor.korsnes@remarkable.no>
To: Jeff Chen <jeff.chen_1@nxp.com>,
Johannes Berg <johannes@sipsolutions.net>
Cc: Viktor Korsnes <viktor.korsnes@remarkable.no>,
Francesco Dolcini <francesco@dolcini.it>,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH wireless 1/2] wifi: nxpwifi: fix hex parsing in nxpwifi_parse_cal_cfg()
Date: Mon, 2 Nov 2026 13:17:59 +0100 [thread overview]
Message-ID: <20261102121856.1011263-1-viktor.korsnes@remarkable.no> (raw)
nxpwifi_parse_cal_cfg() passes a pointer into the raw firmware buffer to
kstrtou8(). Because kstrtou8() requires a NUL- or newline-terminated
string, it fails with -EINVAL as soon as it encounters a space after the
first byte, causing nxpwifi_parse_cal_cfg() to return 0 bytes.
Use hex2bin() instead to parse each two-character hex byte, bound the
output buffer to the command buffer capacity, and return -EINVAL when
no calibration data is parsed.
Fixes: 73b01e57ed3e ("wifi: nxp: add nxpwifi driver for IW61x")
Assisted-by: GitHub-Copilot:Gemini-4-Argon
Signed-off-by: Viktor Korsnes <viktor.korsnes@remarkable.no>
---
drivers/net/wireless/nxp/nxpwifi/sta_cmd.c | 23 +++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wireless/nxp/nxpwifi/sta_cmd.c b/drivers/net/wireless/nxp/nxpwifi/sta_cmd.c
index 5e8ffd306b31..f3cd5a51c438 100644
--- a/drivers/net/wireless/nxp/nxpwifi/sta_cmd.c
+++ b/drivers/net/wireless/nxp/nxpwifi/sta_cmd.c
@@ -1391,7 +1391,7 @@ nxpwifi_ret_sta_mem_access(struct nxpwifi_private *priv,
return 0;
}
-static u32 nxpwifi_parse_cal_cfg(u8 *src, size_t len, u8 *dst)
+static u32 nxpwifi_parse_cal_cfg(u8 *src, size_t len, u8 *dst, size_t dst_size)
{
u8 *s = src, *d = dst;
@@ -1401,7 +1401,8 @@ static u32 nxpwifi_parse_cal_cfg(u8 *src, size_t len, u8 *dst)
continue;
}
if (isxdigit(*s)) {
- if (kstrtou8(s, 16, d))
+ if (d - dst >= dst_size || src + len - s < 2 ||
+ hex2bin(d, s, 1))
return 0;
d++;
s += 2;
@@ -1423,14 +1424,18 @@ nxpwifi_cmd_sta_cfg_data(struct nxpwifi_private *priv,
u32 len;
u8 *data = (u8 *)cmd + S_DS_GEN;
- if (adapter->cal_data->data && adapter->cal_data->size > 0) {
- len = nxpwifi_parse_cal_cfg((u8 *)adapter->cal_data->data,
- adapter->cal_data->size, data);
- nxpwifi_dbg(adapter, INFO,
- "download cfg_data from config file\n");
- } else {
+ if (!adapter->cal_data || !adapter->cal_data->data ||
+ !adapter->cal_data->size)
return -EINVAL;
- }
+
+ len = nxpwifi_parse_cal_cfg((u8 *)adapter->cal_data->data,
+ adapter->cal_data->size, data,
+ NXPWIFI_SIZE_OF_CMD_BUFFER - S_DS_GEN);
+ if (!len)
+ return -EINVAL;
+
+ nxpwifi_dbg(adapter, INFO,
+ "download cfg_data from config file\n");
cmd->command = cpu_to_le16(HOST_CMD_CFG_DATA);
cmd->size = cpu_to_le16(S_DS_GEN + len);
--
2.53.0
next reply other threads:[~2026-11-02 12:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-02 12:17 Viktor Korsnes [this message]
2026-11-02 12:18 ` [PATCH wireless 2/2] wifi: nxpwifi: add missing header to HOST_CMD_CFG_DATA Viktor Korsnes
2026-11-02 23:04 ` [PATCH wireless 1/2] wifi: nxpwifi: fix hex parsing in nxpwifi_parse_cal_cfg() kernel test robot
2026-11-03 0:21 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261102121856.1011263-1-viktor.korsnes@remarkable.no \
--to=viktor.korsnes@remarkable.no \
--cc=francesco@dolcini.it \
--cc=jeff.chen_1@nxp.com \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®