Commit 88b3673e authored by Rohit Sarkar's avatar Rohit Sarkar Committed by Greg Kroah-Hartman

staging: rtl8192u: ieee80211: Replace snprintf with scnprintf

When the number of bytes to be printed exceeds the limit snprintf
returns the number of bytes that would have been printed (if there was
no truncation). This might cause issues, hence use scnprintf which
returns the actual number of bytes printed to buffer always.
Signed-off-by: default avatarRohit Sarkar <rohitsarkar5398@gmail.com>
Link: https://lore.kernel.org/r/20190910182415.GA5768@SARKARSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1c0c5e9b
...@@ -1620,7 +1620,7 @@ int ieee80211_parse_info_param(struct ieee80211_device *ieee, ...@@ -1620,7 +1620,7 @@ int ieee80211_parse_info_param(struct ieee80211_device *ieee,
for (i = 0; i < network->rates_len; i++) { for (i = 0; i < network->rates_len; i++) {
network->rates[i] = info_element->data[i]; network->rates[i] = info_element->data[i];
#ifdef CONFIG_IEEE80211_DEBUG #ifdef CONFIG_IEEE80211_DEBUG
p += snprintf(p, sizeof(rates_str) - p += scnprintf(p, sizeof(rates_str) -
(p - rates_str), "%02X ", (p - rates_str), "%02X ",
network->rates[i]); network->rates[i]);
#endif #endif
...@@ -1647,7 +1647,7 @@ int ieee80211_parse_info_param(struct ieee80211_device *ieee, ...@@ -1647,7 +1647,7 @@ int ieee80211_parse_info_param(struct ieee80211_device *ieee,
for (i = 0; i < network->rates_ex_len; i++) { for (i = 0; i < network->rates_ex_len; i++) {
network->rates_ex[i] = info_element->data[i]; network->rates_ex[i] = info_element->data[i];
#ifdef CONFIG_IEEE80211_DEBUG #ifdef CONFIG_IEEE80211_DEBUG
p += snprintf(p, sizeof(rates_str) - p += scnprintf(p, sizeof(rates_str) -
(p - rates_str), "%02X ", (p - rates_str), "%02X ",
network->rates_ex[i]); network->rates_ex[i]);
#endif #endif
......
...@@ -109,7 +109,7 @@ static inline char *rtl819x_translate_scan(struct ieee80211_device *ieee, ...@@ -109,7 +109,7 @@ static inline char *rtl819x_translate_scan(struct ieee80211_device *ieee,
/* Add basic and extended rates */ /* Add basic and extended rates */
max_rate = 0; max_rate = 0;
p = custom; p = custom;
p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), " Rates (Mb/s): "); p += scnprintf(p, MAX_CUSTOM_LEN - (p - custom), " Rates (Mb/s): ");
for (i = 0, j = 0; i < network->rates_len; ) { for (i = 0, j = 0; i < network->rates_len; ) {
if (j < network->rates_ex_len && if (j < network->rates_ex_len &&
((network->rates_ex[j] & 0x7F) < ((network->rates_ex[j] & 0x7F) <
...@@ -119,12 +119,12 @@ static inline char *rtl819x_translate_scan(struct ieee80211_device *ieee, ...@@ -119,12 +119,12 @@ static inline char *rtl819x_translate_scan(struct ieee80211_device *ieee,
rate = network->rates[i++] & 0x7F; rate = network->rates[i++] & 0x7F;
if (rate > max_rate) if (rate > max_rate)
max_rate = rate; max_rate = rate;
p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), p += scnprintf(p, MAX_CUSTOM_LEN - (p - custom),
"%d%s ", rate >> 1, (rate & 1) ? ".5" : ""); "%d%s ", rate >> 1, (rate & 1) ? ".5" : "");
} }
for (; j < network->rates_ex_len; j++) { for (; j < network->rates_ex_len; j++) {
rate = network->rates_ex[j] & 0x7F; rate = network->rates_ex[j] & 0x7F;
p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), p += scnprintf(p, MAX_CUSTOM_LEN - (p - custom),
"%d%s ", rate >> 1, (rate & 1) ? ".5" : ""); "%d%s ", rate >> 1, (rate & 1) ? ".5" : "");
if (rate > max_rate) if (rate > max_rate)
max_rate = rate; max_rate = rate;
...@@ -214,7 +214,7 @@ static inline char *rtl819x_translate_scan(struct ieee80211_device *ieee, ...@@ -214,7 +214,7 @@ static inline char *rtl819x_translate_scan(struct ieee80211_device *ieee,
* for given network. */ * for given network. */
iwe.cmd = IWEVCUSTOM; iwe.cmd = IWEVCUSTOM;
p = custom; p = custom;
p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), p += scnprintf(p, MAX_CUSTOM_LEN - (p - custom),
" Last beacon: %lums ago", (jiffies - network->last_scanned) / (HZ / 100)); " Last beacon: %lums ago", (jiffies - network->last_scanned) / (HZ / 100));
iwe.u.data.length = p - custom; iwe.u.data.length = p - custom;
if (iwe.u.data.length) if (iwe.u.data.length)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment