diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index b626ac45db80..358b629d2cc6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -2167,7 +2167,7 @@ rtl92e_init_variables(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); - strcpy(priv->nick, "rtl8192E"); + strscpy(priv->nick, "rtl8192E", sizeof(priv->nick)); priv->rtllib->softmac_features = IEEE_SOFTMAC_SCAN | IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ | diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index 25b3d3950a3c..d2726d01c757 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -2582,7 +2582,8 @@ static void rtllib_start_ibss_wq(void *data) mutex_lock(&ieee->wx_mutex); if (ieee->current_network.ssid_len == 0) { - strcpy(ieee->current_network.ssid, RTLLIB_DEFAULT_TX_ESSID); + strscpy(ieee->current_network.ssid, RTLLIB_DEFAULT_TX_ESSID, + sizeof(ieee->current_network.ssid)); ieee->current_network.ssid_len = strlen(RTLLIB_DEFAULT_TX_ESSID); ieee->ssid_set = 1; } diff --git a/drivers/staging/rtl8192e/rtllib_softmac_wx.c b/drivers/staging/rtl8192e/rtllib_softmac_wx.c index f89799d43b1b..57a6d1130b6a 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac_wx.c +++ b/drivers/staging/rtl8192e/rtllib_softmac_wx.c @@ -539,18 +539,14 @@ int rtllib_wx_set_rawtx(struct rtllib_device *ieee, } EXPORT_SYMBOL(rtllib_wx_set_rawtx); -int rtllib_wx_get_name(struct rtllib_device *ieee, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +int rtllib_wx_get_name(struct rtllib_device *ieee, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { - strcpy(wrqu->name, "802.11"); + const char *b = ieee->modulation & RTLLIB_CCK_MODULATION ? "b" : ""; + const char *g = ieee->modulation & RTLLIB_OFDM_MODULATION ? "g" : ""; + const char *n = ieee->mode & (IEEE_N_24G | IEEE_N_5G) ? "n" : ""; - if (ieee->modulation & RTLLIB_CCK_MODULATION) - strcat(wrqu->name, "b"); - if (ieee->modulation & RTLLIB_OFDM_MODULATION) - strcat(wrqu->name, "g"); - if (ieee->mode & (IEEE_N_24G | IEEE_N_5G)) - strcat(wrqu->name, "n"); + scnprintf(wrqu->name, sizeof(wrqu->name), "802.11%s%s%s", b, g, n); return 0; } EXPORT_SYMBOL(rtllib_wx_get_name);