On Thu, Dec 29, 2022 at 12:45:10PM +0300, Dan Carpenter wrote: > On Mon, Dec 26, 2022 at 07:03:24PM +0800, yang.yang29@xxxxxxxxxx wrote: > > From: Xu Panda <xu.panda@xxxxxxxxxx> > > > > The implementation of strscpy() is more robust and safer. > > That's now the recommended way to copy NUL-terminated strings. > > > > Signed-off-by: Xu Panda <xu.panda@xxxxxxxxxx> > > Signed-off-by: Yang Yang <yang.yang29@xxxxxxx> > > --- > > drivers/staging/ks7010/ks_wlan_net.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c > > index 044c807ca022..e03c87f0bfe7 100644 > > --- a/drivers/staging/ks7010/ks_wlan_net.c > > +++ b/drivers/staging/ks7010/ks_wlan_net.c > > @@ -382,8 +382,7 @@ static int ks_wlan_get_nick(struct net_device *dev, > > return -EPERM; > > > > /* for SLEEP MODE */ > > - strncpy(extra, priv->nick, 16); > > - extra[16] = '\0'; > > + strscpy(extra, priv->nick, 17); > > I think this code is a buffer overflow. This is an implementation of > SIOCGIWNICKN. > > net/wireless/wext-core.c > 169 [IW_IOCTL_IDX(SIOCGIWNICKN)] = { > 170 .header_type = IW_HEADER_TYPE_POINT, > 171 .token_size = 1, > 172 .max_tokens = IW_ESSID_MAX_SIZE, > 173 }, > Yeah. I was wrong. The extra size here is .max_tokens * .token_size so it's 32. Sorry for the noise! Reviewed-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> regards, dan carpenter