Re: [PATCH] usb: core: fix quirks_param_set() writing to a const pointer

From: Greg Kroah-Hartman
Date: Mon Jul 06 2020 - 09:07:19 EST


On Mon, Jul 06, 2020 at 02:57:59PM +0200, Kars Mulder wrote:
> On Monday, July 06, 2020 12:34 CEST, Greg Kroah-Hartman wrote:
> > That's a lot of stack space, is it really needed? Can we just use a
> > static variable instead, or dynamically allocate this?
>
> It is very possible to statically or dynamically allocate this.
>
> Statically reserving an additional 128 bytes regardless of whether
> this feature is actually used feels a bit wasteful, so I'd prefer
> stack or dynamic allocation.
>
> An earlier draft of my patch did dynamically allocate this memory;
> early discussion (https://lkml.org/lkml/2020/7/3/248) suggested that
> dynamic allocation has the disadvantage of introducing a new obscure
> error condition:
>
> On Friday, July 03, 2020 10:13 CEST, David Laight wrote:
> > The problem with strdup() is you get the extra (unlikely) failure path.
> > 128 bytes of stack won't be a problem if the function is (essentially)
> > a leaf.

Just test for memory allocation failure and handle it properly, it isn't
hard to do.

128 bytes on the stack can be a problem, don't get in the habit of doing
so please.

thanks,

greg k-h