* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-04 9:02 [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init() Mariia Nikitash
@ 2026-11-04 11:25 ` Alejandro Colomar
2026-11-04 19:01 ` Mariia Nikitash
2026-11-05 11:32 ` David Laight
2026-11-04 16:33 ` Shihuang Liu
` (2 subsequent siblings)
3 siblings, 2 replies; 12+ messages in thread
From: Alejandro Colomar @ 2026-11-04 11:25 UTC (permalink / raw)
To: Mariia Nikitash
Cc: mchehab, linux-media, linux-kernel, linux-hardening, kees,
justinstitt, morbo
[-- Attachment #1: Type: text/plain, Size: 1786 bytes --]
Hi Mariia,
> Date: 2026-11-04 01:02:39-0800
> From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
>
> In preparation for removing the deprecated strlcat() API[1],
> replace the strscpy() and strlcat() calls with a single snprintf()
> call to construct the IR device path.
>
> Both the source and destination buffers have the same capacity,
The line above seems irrelevant, and potentially confusing.
The size of the input is not important, because since we're appending
stuff after it, truncation may actually happen.
> and the return values are unused. This preserves the resulting
> string, including truncation behavior.
>
> Link: https://github.com/KSPP/linux/issues/370 [1]
> Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
Except for the small comment above,
Reviewed-by: Alejandro Colomar <alx@kernel.org>
Cheers,
Alex
> ---
> drivers/media/common/siano/smsir.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
> index 283770d583d5..636ff228108b 100644
> --- a/drivers/media/common/siano/smsir.c
> +++ b/drivers/media/common/siano/smsir.c
> @@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
> snprintf(coredev->ir.name, sizeof(coredev->ir.name),
> "SMS IR (%s)", sms_get_board(board_id)->name);
>
> - strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
> - strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
> + snprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
> + "%s/ir0", coredev->devpath);
>
> dev->device_name = coredev->ir.name;
> dev->input_phys = coredev->ir.phys;
> --
> 2.43.0
>
>
--
<https://www.alejandro-colomar.es>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-04 11:25 ` Alejandro Colomar
@ 2026-11-04 19:01 ` Mariia Nikitash
2026-11-05 11:32 ` David Laight
1 sibling, 0 replies; 12+ messages in thread
From: Mariia Nikitash @ 2026-11-04 19:01 UTC (permalink / raw)
To: Alejandro Colomar
Cc: mchehab, linux-media, linux-kernel, linux-hardening, kees,
justinstitt, morbo
On Wed, Nov 4, 2026 at 3:25 AM Alejandro Colomar
<alx+linux-hardening@kernel.org> wrote:
>
> Hi Mariia,
Hi Alejandro,
>
> > Date: 2026-11-04 01:02:39-0800
> > From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
> >
> > In preparation for removing the deprecated strlcat() API[1],
> > replace the strscpy() and strlcat() calls with a single snprintf()
> > call to construct the IR device path.
> >
> > Both the source and destination buffers have the same capacity,
>
> The line above seems irrelevant, and potentially confusing.
> The size of the input is not important, because since we're appending
> stuff after it, truncation may actually happen.
Agreed. I've removed the statement about buffer capacities from the
commit message in v2. No code changes.
>
> > and the return values are unused. This preserves the resulting
> > string, including truncation behavior.
> >
> > Link: https://github.com/KSPP/linux/issues/370 [1]
> > Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
>
> Except for the small comment above,
>
> Reviewed-by: Alejandro Colomar <alx@kernel.org>
>
Thanks for the review!
>
> Cheers,
> Alex
>
Best,
Mariia
> > ---
> > drivers/media/common/siano/smsir.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
> > index 283770d583d5..636ff228108b 100644
> > --- a/drivers/media/common/siano/smsir.c
> > +++ b/drivers/media/common/siano/smsir.c
> > @@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
> > snprintf(coredev->ir.name, sizeof(coredev->ir.name),
> > "SMS IR (%s)", sms_get_board(board_id)->name);
> >
> > - strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
> > - strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
> > + snprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
> > + "%s/ir0", coredev->devpath);
> >
> > dev->device_name = coredev->ir.name;
> > dev->input_phys = coredev->ir.phys;
> > --
> > 2.43.0
> >
> >
>
> --
> <https://www.alejandro-colomar.es>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-04 11:25 ` Alejandro Colomar
2026-11-04 19:01 ` Mariia Nikitash
@ 2026-11-05 11:32 ` David Laight
2026-11-06 4:08 ` Mariia Nikitash
[not found] ` <CAPDEY+X7q2yeWaa7J=Nre+pQqUa2C760Hh9NovdGNSQ=VsEr8w@mail.gmail.com>
1 sibling, 2 replies; 12+ messages in thread
From: David Laight @ 2026-11-05 11:32 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Mariia Nikitash, mchehab, linux-media, linux-kernel,
linux-hardening, kees, justinstitt, morbo
On Wed, 4 Nov 2026 12:25:17 +0100
Alejandro Colomar <alx+linux-hardening@kernel.org> wrote:
> Hi Mariia,
>
> > Date: 2026-11-04 01:02:39-0800
> > From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
> >
> > In preparation for removing the deprecated strlcat() API[1],
> > replace the strscpy() and strlcat() calls with a single snprintf()
> > call to construct the IR device path.
> >
> > Both the source and destination buffers have the same capacity,
>
> The line above seems irrelevant, and potentially confusing.
> The size of the input is not important, because since we're appending
> stuff after it, truncation may actually happen.
And gcc's stupid format overflow check is going to complain.
David
>
> > and the return values are unused. This preserves the resulting
> > string, including truncation behavior.
> >
> > Link: https://github.com/KSPP/linux/issues/370 [1]
> > Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
>
> Except for the small comment above,
>
> Reviewed-by: Alejandro Colomar <alx@kernel.org>
>
>
> Cheers,
> Alex
>
> > ---
> > drivers/media/common/siano/smsir.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
> > index 283770d583d5..636ff228108b 100644
> > --- a/drivers/media/common/siano/smsir.c
> > +++ b/drivers/media/common/siano/smsir.c
> > @@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
> > snprintf(coredev->ir.name, sizeof(coredev->ir.name),
> > "SMS IR (%s)", sms_get_board(board_id)->name);
> >
> > - strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
> > - strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
> > + snprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
> > + "%s/ir0", coredev->devpath);
> >
> > dev->device_name = coredev->ir.name;
> > dev->input_phys = coredev->ir.phys;
> > --
> > 2.43.0
> >
> >
>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-05 11:32 ` David Laight
@ 2026-11-06 4:08 ` Mariia Nikitash
[not found] ` <CAPDEY+X7q2yeWaa7J=Nre+pQqUa2C760Hh9NovdGNSQ=VsEr8w@mail.gmail.com>
1 sibling, 0 replies; 12+ messages in thread
From: Mariia Nikitash @ 2026-11-06 4:08 UTC (permalink / raw)
To: David Laight
Cc: Alejandro Colomar, mchehab, linux-media, linux-kernel,
linux-hardening, kees, justinstitt, morbo
On Thu, Nov 5, 2026 at 3:32 AM David Laight
<david.laight.linux@gmail.com> wrote:
>
> On Wed, 4 Nov 2026 12:25:17 +0100
> Alejandro Colomar <alx+linux-hardening@kernel.org> wrote:
>
> > Hi Mariia,
> >
> > > Date: 2026-11-04 01:02:39-0800
> > > From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
> > >
> > > In preparation for removing the deprecated strlcat() API[1],
> > > replace the strscpy() and strlcat() calls with a single snprintf()
> > > call to construct the IR device path.
> > >
> > > Both the source and destination buffers have the same capacity,
> >
> > The line above seems irrelevant, and potentially confusing.
> > The size of the input is not important, because since we're appending
> > stuff after it, truncation may actually happen.
>
> And gcc's stupid format overflow check is going to complain.
Thanks for pointing this out! I initially tested with Clang, but
reproduced the warning with GCC. I've switched to seq_buf for v3.
>
> David
>
Best,
Mariia
> >
> > > and the return values are unused. This preserves the resulting
> > > string, including truncation behavior.
> > >
> > > Link: https://github.com/KSPP/linux/issues/370 [1]
> > > Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
> >
> > Except for the small comment above,
> >
> > Reviewed-by: Alejandro Colomar <alx@kernel.org>
> >
> >
> > Cheers,
> > Alex
> >
> > > ---
> > > drivers/media/common/siano/smsir.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
> > > index 283770d583d5..636ff228108b 100644
> > > --- a/drivers/media/common/siano/smsir.c
> > > +++ b/drivers/media/common/siano/smsir.c
> > > @@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
> > > snprintf(coredev->ir.name, sizeof(coredev->ir.name),
> > > "SMS IR (%s)", sms_get_board(board_id)->name);
> > >
> > > - strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
> > > - strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
> > > + snprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
> > > + "%s/ir0", coredev->devpath);
> > >
> > > dev->device_name = coredev->ir.name;
> > > dev->input_phys = coredev->ir.phys;
> > > --
> > > 2.43.0
> > >
> > >
> >
>
^ permalink raw reply [flat|nested] 12+ messages in thread[parent not found: <CAPDEY+X7q2yeWaa7J=Nre+pQqUa2C760Hh9NovdGNSQ=VsEr8w@mail.gmail.com>]
* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
[not found] ` <CAPDEY+X7q2yeWaa7J=Nre+pQqUa2C760Hh9NovdGNSQ=VsEr8w@mail.gmail.com>
@ 2026-11-06 10:27 ` David Laight
2026-11-06 16:06 ` Kees Cook
0 siblings, 1 reply; 12+ messages in thread
From: David Laight @ 2026-11-06 10:27 UTC (permalink / raw)
To: Mariia Nikitash
Cc: Alejandro Colomar, mchehab, linux-media, linux-kernel,
linux-hardening, kees, justinstitt, morbo
On Thu, 5 Nov 2026 17:44:00 -0800
Mariia Nikitash <nikitash.mariiaw@gmail.com> wrote:
> On Thu, Nov 5, 2026 at 3:32 AM David Laight <david.laight.linux@gmail.com>
> wrote:
> >
> > On Wed, 4 Nov 2026 12:25:17 +0100
> > Alejandro Colomar <alx+linux-hardening@kernel.org> wrote:
> >
> > > Hi Mariia,
> > >
> > > > Date: 2026-11-04 01:02:39-0800
> > > > From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
> > > >
> > > > In preparation for removing the deprecated strlcat() API[1],
> > > > replace the strscpy() and strlcat() calls with a single snprintf()
> > > > call to construct the IR device path.
> > > >
> > > > Both the source and destination buffers have the same capacity,
> > >
> > > The line above seems irrelevant, and potentially confusing.
> > > The size of the input is not important, because since we're appending
> > > stuff after it, truncation may actually happen.
> >
> > And gcc's stupid format overflow check is going to complain.
>
> Thanks for pointing this out! I initially tested with Clang, but reproduced
> the warning with GCC. I've switched to seq_buf for v3.
That is entirely OTT.
Currently scnprintf() doesn't complain.
David
>
> >
> > David
> >
>
> Best,
> Mariia
>
>
> > >
> > > > and the return values are unused. This preserves the resulting
> > > > string, including truncation behavior.
> > > >
> > > > Link: https://github.com/KSPP/linux/issues/370 [1]
> > > > Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
> > >
> > > Except for the small comment above,
> > >
> > > Reviewed-by: Alejandro Colomar <alx@kernel.org>
> > >
> > >
> > > Cheers,
> > > Alex
> > >
> > > > ---
> > > > drivers/media/common/siano/smsir.c | 4 ++--
> > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/drivers/media/common/siano/smsir.c
> b/drivers/media/common/siano/smsir.c
> > > > index 283770d583d5..636ff228108b 100644
> > > > --- a/drivers/media/common/siano/smsir.c
> > > > +++ b/drivers/media/common/siano/smsir.c
> > > > @@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
> > > > snprintf(coredev->ir.name, sizeof(coredev->ir.name),
> > > > "SMS IR (%s)", sms_get_board(board_id)->name);
> > > >
> > > > - strscpy(coredev->ir.phys, coredev->devpath,
> sizeof(coredev->ir.phys));
> > > > - strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
> > > > + snprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
> > > > + "%s/ir0", coredev->devpath);
> > > >
> > > > dev->device_name = coredev->ir.name;
> > > > dev->input_phys = coredev->ir.phys;
> > > > --
> > > > 2.43.0
> > > >
> > > >
> > >
> >
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-06 10:27 ` David Laight
@ 2026-11-06 16:06 ` Kees Cook
2026-11-07 3:50 ` Mariia Nikitash
0 siblings, 1 reply; 12+ messages in thread
From: Kees Cook @ 2026-11-06 16:06 UTC (permalink / raw)
To: David Laight, Mariia Nikitash
Cc: Alejandro Colomar, mchehab, linux-media, linux-kernel,
linux-hardening, justinstitt, morbo
On November 6, 2026 2:27:23 AM PST, David Laight <david.laight.linux@gmail.com> wrote:
>On Thu, 5 Nov 2026 17:44:00 -0800
>Mariia Nikitash <nikitash.mariiaw@gmail.com> wrote:
>
>> On Thu, Nov 5, 2026 at 3:32 AM David Laight <david.laight.linux@gmail.com>
>> wrote:
>> >
>> > On Wed, 4 Nov 2026 12:25:17 +0100
>> > Alejandro Colomar <alx+linux-hardening@kernel.org> wrote:
>> >
>> > > Hi Mariia,
>> > >
>> > > > Date: 2026-11-04 01:02:39-0800
>> > > > From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
>> > > >
>> > > > In preparation for removing the deprecated strlcat() API[1],
>> > > > replace the strscpy() and strlcat() calls with a single snprintf()
>> > > > call to construct the IR device path.
>> > > >
>> > > > Both the source and destination buffers have the same capacity,
>> > >
>> > > The line above seems irrelevant, and potentially confusing.
>> > > The size of the input is not important, because since we're appending
>> > > stuff after it, truncation may actually happen.
>> >
>> > And gcc's stupid format overflow check is going to complain.
>>
>> Thanks for pointing this out! I initially tested with Clang, but reproduced
>> the warning with GCC. I've switched to seq_buf for v3.
>
>That is entirely OTT.
>Currently scnprintf() doesn't complain.
What does GCC say about it? Is it mad about src >= dest length but the format adds chars?
I agree that seq_buf isn't needed here; that's really only for complicated cases where the simpler solutions don't fit. (In this case, snprintf-like is best.)
Both seq_buf and scnprintf avoid the warning because GCC just happens to not recognize the pattern when using those helpers, so this is just silencing the warning, much like strlcat() did too.
Truncation was the norm already, so scnprintf is probably the best fit, but I think it may be worth looking at the surrounding code and conventions to decide if truncation should be communicated upward to the caller (i.e. fail), or if the structures involved should be adjusted to avoid truncation chance, etc etc. If possible we should avoid the weakness, but if not, just use the minimal solution here, which is scnprintf, though that kicks the warning down the road...
-Kees
--
Kees Cook
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-06 16:06 ` Kees Cook
@ 2026-11-07 3:50 ` Mariia Nikitash
0 siblings, 0 replies; 12+ messages in thread
From: Mariia Nikitash @ 2026-11-07 3:50 UTC (permalink / raw)
To: Kees Cook
Cc: David Laight, Alejandro Colomar, mchehab, linux-media,
linux-kernel, linux-hardening, justinstitt, morbo
On Fri, Nov 6, 2026 at 8:06 AM Kees Cook <kees@kernel.org> wrote:
>
>
>
> On November 6, 2026 2:27:23 AM PST, David Laight <david.laight.linux@gmail.com> wrote:
> >On Thu, 5 Nov 2026 17:44:00 -0800
> >Mariia Nikitash <nikitash.mariiaw@gmail.com> wrote:
> >
> >> On Thu, Nov 5, 2026 at 3:32 AM David Laight <david.laight.linux@gmail.com>
> >> wrote:
> >> >
> >> > On Wed, 4 Nov 2026 12:25:17 +0100
> >> > Alejandro Colomar <alx+linux-hardening@kernel.org> wrote:
> >> >
> >> > > Hi Mariia,
> >> > >
> >> > > > Date: 2026-11-04 01:02:39-0800
> >> > > > From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
> >> > > >
> >> > > > In preparation for removing the deprecated strlcat() API[1],
> >> > > > replace the strscpy() and strlcat() calls with a single snprintf()
> >> > > > call to construct the IR device path.
> >> > > >
> >> > > > Both the source and destination buffers have the same capacity,
> >> > >
> >> > > The line above seems irrelevant, and potentially confusing.
> >> > > The size of the input is not important, because since we're appending
> >> > > stuff after it, truncation may actually happen.
> >> >
> >> > And gcc's stupid format overflow check is going to complain.
> >>
> >> Thanks for pointing this out! I initially tested with Clang, but reproduced
> >> the warning with GCC. I've switched to seq_buf for v3.
> >
> >That is entirely OTT.
> >Currently scnprintf() doesn't complain.
>
>
Hi Kees,
> What does GCC say about it? Is it mad about src >= dest length but the format adds chars?
GCC 13 reported -Wformat-truncation:
error: ‘/ir0’ directive output may be truncated writing 4 bytes
into a region of size between 1 and 32
note: ‘snprintf’ output between 5 and 36 bytes
into a destination of size 32
Both devpath and ir.phys are 32-byte buffers, so the suffix may not fit.
> I agree that seq_buf isn't needed here; that's really only for complicated cases where the simpler solutions don't fit. (In this case, snprintf-like is best.)
That makes sense.
> Both seq_buf and scnprintf avoid the warning because GCC just happens to not recognize the pattern when using those helpers, so this is just silencing the warning, much like strlcat() did too.
>
> Truncation was the norm already, so scnprintf is probably the best fit, but I think it may be worth looking at the surrounding code and conventions to decide if truncation should be communicated upward to the caller (i.e. fail), or if the structures involved should be adjusted to avoid truncation chance, etc etc. If possible we should avoid the weakness, but if not, just use the minimal solution here, which is scnprintf, though that kicks the warning down the road...
I traced the USB/SDIO initialization paths and checked the caller's
error handling. The existing code permits truncation, so I kept v4
focused on preserving that behavior with scnprintf(). Any broader
changes to truncation handling could be addressed separately.
Thank you!
>
> -Kees
>
>
Mariia
> --
> Kees Cook
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-04 9:02 [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init() Mariia Nikitash
2026-11-04 11:25 ` Alejandro Colomar
@ 2026-11-04 16:33 ` Shihuang Liu
2026-11-04 18:50 ` [PATCH v2] " Mariia Nikitash
2026-11-07 3:39 ` [PATCH v4] media: siano: Replace strlcat() with scnprintf() " Mariia Nikitash
3 siblings, 0 replies; 12+ messages in thread
From: Shihuang Liu @ 2026-11-04 16:33 UTC (permalink / raw)
To: Mariia Nikitash
Cc: mchehab, linux-media, linux-kernel, linux-hardening, kees,
justinstitt, morbo
On Wed, Nov 04, 2026 at 01:02:39AM -0800, Mariia Nikitash wrote:
> In preparation for removing the deprecated strlcat() API[1],
> replace the strscpy() and strlcat() calls with a single snprintf()
> call to construct the IR device path.
>
> Both the source and destination buffers have the same capacity,
> and the return values are unused. This preserves the resulting
> string, including truncation behavior.
>
> Link: https://github.com/KSPP/linux/issues/370 [1]
> Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
Reviewed-by: Shihuang Liu <shlomojune6@gmail.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] media: siano: Replace strlcat() with snprintf() in sms_ir_init()
2026-11-04 9:02 [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init() Mariia Nikitash
2026-11-04 11:25 ` Alejandro Colomar
2026-11-04 16:33 ` Shihuang Liu
@ 2026-11-04 18:50 ` Mariia Nikitash
2026-11-07 3:39 ` [PATCH v4] media: siano: Replace strlcat() with scnprintf() " Mariia Nikitash
3 siblings, 0 replies; 12+ messages in thread
From: Mariia Nikitash @ 2026-11-04 18:50 UTC (permalink / raw)
To: mchehab
Cc: linux-media, linux-kernel, linux-hardening, kees, justinstitt,
morbo, alx, shlomojune6, Mariia Nikitash
In preparation for removing the deprecated strlcat() API[1],
replace the strscpy() and strlcat() calls with a single snprintf()
call to construct the IR device path.
The return values are unused. This preserves the resulting
string, including truncation behavior.
Link: https://github.com/KSPP/linux/issues/370 [1]
Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
Reviewed-by: Alejandro Colomar <alx@kernel.org>
Reviewed-by: Shihuang Liu <shlomojune6@gmail.com>
---
Changes in v2:
- No code changes.
- Remove the statement about buffer capacities
from the commit message.
- Add Reviewed-by tags from Alejandro Colomar and Shihuang Liu.
drivers/media/common/siano/smsir.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
index 283770d583d5..636ff228108b 100644
--- a/drivers/media/common/siano/smsir.c
+++ b/drivers/media/common/siano/smsir.c
@@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
snprintf(coredev->ir.name, sizeof(coredev->ir.name),
"SMS IR (%s)", sms_get_board(board_id)->name);
- strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
- strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
+ snprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
+ "%s/ir0", coredev->devpath);
dev->device_name = coredev->ir.name;
dev->input_phys = coredev->ir.phys;
--
2.43.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4] media: siano: Replace strlcat() with scnprintf() in sms_ir_init()
2026-11-04 9:02 [PATCH] media: siano: Replace strlcat() with snprintf() in sms_ir_init() Mariia Nikitash
` (2 preceding siblings ...)
2026-11-04 18:50 ` [PATCH v2] " Mariia Nikitash
@ 2026-11-07 3:39 ` Mariia Nikitash
2026-11-07 7:35 ` Alejandro Colomar
3 siblings, 1 reply; 12+ messages in thread
From: Mariia Nikitash @ 2026-11-07 3:39 UTC (permalink / raw)
To: mchehab
Cc: linux-media, linux-kernel, linux-hardening, kees, justinstitt,
morbo, alx, shlomojune6, Mariia Nikitash
In preparation for removing the deprecated strlcat() API[1], replace
the strscpy() and strlcat() calls with a single bounded scnprintf()
call to construct the IR device path.
This preserves the original NUL-terminated output, including partial
or omitted "/ir0" suffixes when the 32-byte buffer is too small.
Link: https://github.com/KSPP/linux/issues/370 [1]
Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
---
Changes in v4:
- Replace seq_buf with scnprintf(), as suggested by David Laight
and Kees Cook.
- Remove the unused seq_buf include and local variable.
Changes in v3:
- Replace snprintf() with seq_buf operations after reproducing
the GCC -Wformat-truncation warning noted by David Laight.
- Drop the previous Reviewed-by tags due to the implementation change.
Changes in v2:
- No code changes.
- Remove the statement about buffer capacities from the commit message.
- Add Reviewed-by tags from Alejandro Colomar and Shihuang Liu.
drivers/media/common/siano/smsir.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
index 283770d583d5..6952871c5816 100644
--- a/drivers/media/common/siano/smsir.c
+++ b/drivers/media/common/siano/smsir.c
@@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
snprintf(coredev->ir.name, sizeof(coredev->ir.name),
"SMS IR (%s)", sms_get_board(board_id)->name);
- strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
- strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
+ scnprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
+ "%s/ir0", coredev->devpath);
dev->device_name = coredev->ir.name;
dev->input_phys = coredev->ir.phys;
--
2.43.0
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v4] media: siano: Replace strlcat() with scnprintf() in sms_ir_init()
2026-11-07 3:39 ` [PATCH v4] media: siano: Replace strlcat() with scnprintf() " Mariia Nikitash
@ 2026-11-07 7:35 ` Alejandro Colomar
0 siblings, 0 replies; 12+ messages in thread
From: Alejandro Colomar @ 2026-11-07 7:35 UTC (permalink / raw)
To: Mariia Nikitash
Cc: mchehab, linux-media, linux-kernel, linux-hardening, kees,
justinstitt, morbo, alx, shlomojune6
[-- Attachment #1: Type: text/plain, Size: 2105 bytes --]
> Date: 2026-11-06 19:39:28-0800
> From: Mariia Nikitash <nikitash.mariiaw@gmail.com>
>
> In preparation for removing the deprecated strlcat() API[1], replace
> the strscpy() and strlcat() calls with a single bounded scnprintf()
> call to construct the IR device path.
>
> This preserves the original NUL-terminated output, including partial
> or omitted "/ir0" suffixes when the 32-byte buffer is too small.
>
> Link: https://github.com/KSPP/linux/issues/370 [1]
> Signed-off-by: Mariia Nikitash <nikitash.mariiaw@gmail.com>
Reviewed-by: Alejandro Colomar <alx@kernel.org>
Cheers,
Alex
> ---
> Changes in v4:
> - Replace seq_buf with scnprintf(), as suggested by David Laight
> and Kees Cook.
> - Remove the unused seq_buf include and local variable.
>
> Changes in v3:
> - Replace snprintf() with seq_buf operations after reproducing
> the GCC -Wformat-truncation warning noted by David Laight.
> - Drop the previous Reviewed-by tags due to the implementation change.
>
> Changes in v2:
> - No code changes.
> - Remove the statement about buffer capacities from the commit message.
> - Add Reviewed-by tags from Alejandro Colomar and Shihuang Liu.
>
> drivers/media/common/siano/smsir.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
> index 283770d583d5..6952871c5816 100644
> --- a/drivers/media/common/siano/smsir.c
> +++ b/drivers/media/common/siano/smsir.c
> @@ -55,8 +55,8 @@ int sms_ir_init(struct smscore_device_t *coredev)
> snprintf(coredev->ir.name, sizeof(coredev->ir.name),
> "SMS IR (%s)", sms_get_board(board_id)->name);
>
> - strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
> - strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
> + scnprintf(coredev->ir.phys, sizeof(coredev->ir.phys),
> + "%s/ir0", coredev->devpath);
>
> dev->device_name = coredev->ir.name;
> dev->input_phys = coredev->ir.phys;
> --
> 2.43.0
>
>
--
<https://www.alejandro-colomar.es>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread