Messages in this thread |  | | Date | Sun, 30 Sep 2012 20:59:05 +0200 | | Subject | Re: [PATCH] sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat() | | From | Geert Uytterhoeven <> |
| |
Hi Greg,
On Sun, Sep 30, 2012 at 4:49 PM, Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote: > On Sat, Sep 29, 2012 at 10:23:19PM +0200, Geert Uytterhoeven wrote: >> The warning check for duplicate sysfs entries can cause a buffer overflow >> when printing the warning, as strcat() doesn't check buffer sizes. >> Use strlcat() instead. > > As the comment said, we knew about this, but I have never seen it, do > you know of a way to trigger it?
I expected there would be a check somewhere else in the code, so we can never overflow here. But I did manage to overflow the buffer by having a real long name (4060 characters) in a conflicting mfd_cell. There may be other ways.
I don't know how likely it is to trigger in a real world scenario. Is there a limit on the depth of sysfs? Or can it go unbounded, e.g. by cascading USB hubs?
>> Cc: stable@vger.kernel.org > > Given that I don't know of any way to actually hit this problem, is it > really needed for older kernel releases?
That's up to you to decide...
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
|  |