| From da4ca7f34b817b7d3450a02761a6f8704217587a Mon Sep 17 00:00:00 2001 |
| From: Brian Norris <briannorris@chromium.org> |
| Date: Mon, 9 Jan 2017 15:33:50 -0800 |
| Subject: [PATCH] mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print |
| |
| commit 6183468a23fc6b6903f8597982017ad2c7fdefcf upstream. |
| |
| Similar to commit fcd2042e8d36 ("mwifiex: printk() overflow with 32-byte |
| SSIDs"), we failed to account for the existence of 32-char SSIDs in our |
| debugfs code. Unlike in that case though, we zeroed out the containing |
| struct first, and I'm pretty sure we're guaranteed to have some padding |
| after the 'ssid.ssid' and 'ssid.ssid_len' fields (the struct is 33 bytes |
| long). |
| |
| So, this is the difference between: |
| |
| # cat /sys/kernel/debug/mwifiex/mlan0/info |
| ... |
| essid="0123456789abcdef0123456789abcdef " |
| ... |
| |
| and the correct output: |
| |
| # cat /sys/kernel/debug/mwifiex/mlan0/info |
| ... |
| essid="0123456789abcdef0123456789abcdef" |
| ... |
| |
| Fixes: 5e6e3a92b9a4 ("wireless: mwifiex: initial commit for Marvell mwifiex driver") |
| Signed-off-by: Brian Norris <briannorris@chromium.org> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/wireless/marvell/mwifiex/debugfs.c b/drivers/net/wireless/marvell/mwifiex/debugfs.c |
| index bccf17ad588e..3f7ce6a44e2e 100644 |
| --- a/drivers/net/wireless/marvell/mwifiex/debugfs.c |
| +++ b/drivers/net/wireless/marvell/mwifiex/debugfs.c |
| @@ -114,7 +114,8 @@ mwifiex_info_read(struct file *file, char __user *ubuf, |
| if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) { |
| p += sprintf(p, "multicast_count=\"%d\"\n", |
| netdev_mc_count(netdev)); |
| - p += sprintf(p, "essid=\"%s\"\n", info.ssid.ssid); |
| + p += sprintf(p, "essid=\"%.*s\"\n", info.ssid.ssid_len, |
| + info.ssid.ssid); |
| p += sprintf(p, "bssid=\"%pM\"\n", info.bssid); |
| p += sprintf(p, "channel=\"%d\"\n", (int) info.bss_chan); |
| p += sprintf(p, "country_code = \"%s\"\n", info.country_code); |
| -- |
| 2.12.0 |
| |