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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday, April 13, 2021 2:59:29 PM CEST Greg Kroah-Hartman wrote:
> 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?
>
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1388:5: warning: 
‘strncpy’ output may be truncated copying 32 bytes from a string of length 
32 [-Wstringop-truncation]
 1388 |     strncpy(tmp_ssid, ieee->current_network.ssid, 
IW_ESSID_MAX_SIZE);
> 
> > 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?
>
I surely was... but now I'm not anymore, since your review :)

Maybe you mean I have to check possible return of -E2BIG?
Did you mean something else?
May you please elaborate further?

Thanks,

Fabio
> 
> >  				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









[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux