Re: [Outreachy kernel] [PATCH] staging: rtl8192u: ieee80211: Replaced strncpy() with strscpy()

From: Greg Kroah-Hartman
Date: Tue Apr 13 2021 - 08:59:34 EST


On Tue, Apr 13, 2021 at 02:30:41PM +0200, Fabio M. De Francesco wrote:
> Replaced strncpy() with strscpy() because of compilation time warnings
> about possible truncation of output [-Wstringop-truncation].

build warnings? What build warnings?

> Furthermore, according to the Linux official documentation, strscpy() is
> preferred to strncpy.
>
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@xxxxxxxxx>
> ---
> drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
> index 25ea8e1b6b65..aa58eedf5e86 100644
> --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
> +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
> @@ -1385,12 +1385,12 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
> * essid provided by the user.
> */
> if (!ssidbroad) {
> - strncpy(tmp_ssid, ieee->current_network.ssid, IW_ESSID_MAX_SIZE);
> + strscpy(tmp_ssid, ieee->current_network.ssid, IW_ESSID_MAX_SIZE);

Are you sure you can just replace this like this?


> tmp_ssid_len = ieee->current_network.ssid_len;
> }
> memcpy(&ieee->current_network, net, sizeof(struct ieee80211_network));
>
> - strncpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE);
> + strscpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE);

Same here, are you sure?

thanks,

greg k-h