OSDN Git Service

staging: rtl8712: Replace snprintf with scnprintf
authorRohit Sarkar <rohitsarkar5398@gmail.com>
Tue, 10 Sep 2019 18:49:31 +0000 (00:19 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Sep 2019 19:57:59 +0000 (21:57 +0200)
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: Rohit Sarkar <rohitsarkar5398@gmail.com>
Link: https://lore.kernel.org/r/20190910184931.GA8228@SARKAR
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8712/rtl871x_ioctl_linux.c

index 944336e..b3263e9 100644 (file)
@@ -142,7 +142,7 @@ static noinline_for_stack char *translate_scan_wpa(struct iw_request_info *info,
                memset(buf, 0, MAX_WPA_IE_LEN);
                n = sprintf(buf, "wpa_ie=");
                for (i = 0; i < wpa_len; i++) {
-                       n += snprintf(buf + n, MAX_WPA_IE_LEN - n,
+                       n += scnprintf(buf + n, MAX_WPA_IE_LEN - n,
                                                "%02x", wpa_ie[i]);
                        if (n >= MAX_WPA_IE_LEN)
                                break;
@@ -162,7 +162,7 @@ static noinline_for_stack char *translate_scan_wpa(struct iw_request_info *info,
                memset(buf, 0, MAX_WPA_IE_LEN);
                n = sprintf(buf, "rsn_ie=");
                for (i = 0; i < rsn_len; i++) {
-                       n += snprintf(buf + n, MAX_WPA_IE_LEN - n,
+                       n += scnprintf(buf + n, MAX_WPA_IE_LEN - n,
                                                "%02x", rsn_ie[i]);
                        if (n >= MAX_WPA_IE_LEN)
                                break;