When strncpy() is called with source and destination strings the same
length, gcc 8 warns that there may be an unterminated string. This section
is completely reworked to use the known lengths of the strings.

Signed-off-by: Larry Finger <larry.fin...@lwfinger.net>
---
v2 - David Laight's comments are implemented. 
---
 drivers/staging/rtl8192e/rtllib_softmac.c | 18 ++++++++++--------
 drivers/staging/rtl8192e/rtllib_softmac.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c 
b/drivers/staging/rtl8192e/rtllib_softmac.c
index 919231fec09c..287d0c11fa38 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -1680,19 +1680,19 @@ inline void rtllib_softmac_new_net(struct rtllib_device 
*ieee,
                   (ssidbroad && !ssidset) || (!ssidbroad && ssidset))) ||
                   (!apset && ssidset && ssidbroad && ssidmatch) ||
                   (ieee->is_roaming && ssidset && ssidbroad && ssidmatch)) {
-                       /* if the essid is hidden replace it with the
-                        * essid provided by the user.
+                       /* Save the essid so that if it is hidden, it is
+                        * replaced with the essid provided by the user.
                         */
                        if (!ssidbroad) {
-                               strncpy(tmp_ssid, ieee->current_network.ssid,
-                                       IW_ESSID_MAX_SIZE);
+                               memcpy(tmp_ssid, ieee->current_network.ssid,
+                                      ieee->current_network.ssid_len);
                                tmp_ssid_len = ieee->current_network.ssid_len;
                        }
-                       memcpy(&ieee->current_network, net,
-                              sizeof(struct rtllib_network));
+                       memcpy(&ieee->current_network, net,
+                              sizeof(ieee->current_network));
                        if (!ssidbroad) {
-                               strncpy(ieee->current_network.ssid, tmp_ssid,
-                                       IW_ESSID_MAX_SIZE);
+                               memcpy(ieee->current_network.ssid, tmp_ssid,
+                                      tmp_ssid_len);
                                ieee->current_network.ssid_len = tmp_ssid_len;
                        }
                        netdev_info(ieee->dev,
-- 
2.18.0

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to