aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
diff options
context:
space:
mode:
authorRasmus Villemoes <linux@rasmusvillemoes.dk>2018-08-22 15:22:15 +0200
committerKalle Valo <kvalo@codeaurora.org>2018-08-31 18:48:02 +0300
commitcb18e2e9ec71d42409a51b83546686c609780dde (patch)
tree08bea7cfad76fdbed3e57c107851bd36023b691d /drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
parentrt2x00: use simple_read_from_buffer() (diff)
downloadwireguard-linux-cb18e2e9ec71d42409a51b83546686c609780dde.tar.xz
wireguard-linux-cb18e2e9ec71d42409a51b83546686c609780dde.zip
brcmfmac: fix wrong strnchr usage
strnchr takes arguments in the order of its name: string, max bytes to read, character to search for. Here we're passing '\n' aka 10 as the buffer size, and searching for sizeof(buf) aka BRCMF_DCMD_SMLEN aka 256 (aka '\0', since it's implicitly converted to char) within those 10 bytes. Just interchanging the last two arguments would still leave a bug, because if we've been successful once, there are not sizeof(buf) characters left after the new value of p. Since clmver is immediately afterwards passed as a %s argument, I assume that it is actually a properly nul-terminated string. For that case, we have strreplace(). Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c')
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
index cd3651069d0c..94044a7a6021 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -296,9 +296,7 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
/* Replace all newline/linefeed characters with space
* character
*/
- ptr = clmver;
- while ((ptr = strnchr(ptr, '\n', sizeof(buf))) != NULL)
- *ptr = ' ';
+ strreplace(clmver, '\n', ' ');
brcmf_dbg(INFO, "CLM version = %s\n", clmver);
}