Re: [PATCH 3/5] usb: fotg210-hcd: Replace snprintf() with the safer scnprintf() variant
From: Linus Walleij
Date: Thu Nov 30 2023 - 09:48:44 EST
On Thu, Nov 30, 2023 at 11:55 AM Lee Jones <lee@xxxxxxxxxx> wrote:
> There is a general misunderstanding amongst engineers that {v}snprintf()
> returns the length of the data *actually* encoded into the destination
> array. However, as per the C99 standard {v}snprintf() really returns
> the length of the data that *would have been* written if there were
> enough space for it. This misunderstanding has led to buffer-overruns
> in the past. It's generally considered safer to use the {v}scnprintf()
> variants in their place (or even sprintf() in simple cases). So let's
> do that.
>
> The uses in this file both seem to assume that data *has been* written!
>
> Link: https://lwn.net/Articles/69419/
> Link: https://github.com/KSPP/linux/issues/105
> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Yuan-Hsin Chen <yhchen@xxxxxxxxxxxxxxxx>
> Cc: Feng-Hsin Chiang <john453@xxxxxxxxxxxxxxxx>
> Cc: Po-Yu Chuang <ratbert.chuang@xxxxxxxxx>
> Cc: linux-usb@xxxxxxxxxxxxxxx
> Signed-off-by: Lee Jones <lee@xxxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Thanks for doing this Lee!
And as David points out it is even a bug fix at the same time.
Yours,
Linus Walleij