Re: [PATCH] staging/rtl8712: Remove all strcpy() uses in favor of strscpy()

From: Dan Carpenter
Date: Mon Jul 26 2021 - 04:12:59 EST


On Fri, Jul 23, 2021 at 05:15:10PM +0200, Len Baker wrote:
> Hi,
>
> On Wed, Jul 21, 2021 at 11:06:24AM +0300, Dan Carpenter wrote:
> > On Mon, Jul 19, 2021 at 03:24:38PM +0000, David Laight wrote:
> > > From: Dan Carpenter
> > > > Sent: 19 July 2021 06:38
> > > ...
> > > > Not related to your patch but this code is bad. What it does is the
> > > > "ifname" can be set as a module parameter. So instead of testing if it
> > > > has been set, it uses the checking inside dev_alloc_name() to see if we
> > > > can allocate what the user requested. If not then set it to "wlan%d".
> > > > If we cannot allocate what the user wants then we should return an
> > > > error.
> > > >
> > > > It should do:
> > > >
> > > > if (ifname[0] == '\0')
> > > > strscpy(ifname, "wlan%d", sizeof(ifname));
> > > >
> > > > ret = dev_alloc_name(pnetdev, ifname);
> > > > if (ret < 0) {
> > > > dev_err(pnetdev, "allocating device name failed.\n");
> > > > return NULL;
> > > > }
> > >
> > > I know only root can set module parameters, but having one
> > > that contains a string used as a printf format seems
> > > dangerous at best.
> > >
> > > Isn't it best to let userspace rename the interfaces later on?
> >
> > Yeah. I think you're right.
>
> Sorry, but I don't understand if the code needs to be improved or not.
> Is the code shown by Dan not correct?

We should remove the ifname[] array and the module option completely.

regards,
dan carpenter