[PATCH net] net: thunderx: Fix format-truncation warning in bgx_acpi_match_id()

Alok Tiwari posted 1 patch 3 months ago
There is a newer version of this series
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH net] net: thunderx: Fix format-truncation warning in bgx_acpi_match_id()
Posted by Alok Tiwari 3 months ago
The buffer bgx_sel used in snprintf() was too small to safely hold
the formatted string "BGX%d" for all valid bgx_id values. This caused
a -Wformat-truncation warning with Werror enabled during build.

Increase the buffer size from 5 to 8 and use sizeof(bgx_sel) in
snprintf() to ensure safety and suppress the warning.

Build warning:
  CC      drivers/net/ethernet/cavium/thunder/thunder_bgx.o
  drivers/net/ethernet/cavium/thunder/thunder_bgx.c: In function
‘bgx_acpi_match_id’:
  drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:27: error: ‘%d’
directive output may be truncated writing between 1 and 3 bytes into a
region of size 2 [-Werror=format-truncation=]
    snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
                             ^~
  drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:23: note:
directive argument in the range [0, 255]
    snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
                         ^~~~~~~
  drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:2: note:
‘snprintf’ output between 5 and 7 bytes into a destination of size 5
    snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);

compiler warning due to insufficient snprintf buffer size.

Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
---
 drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 3b7ad744b2dd6..2eea3142eebea 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -1429,9 +1429,9 @@ static acpi_status bgx_acpi_match_id(acpi_handle handle, u32 lvl,
 {
 	struct acpi_buffer string = { ACPI_ALLOCATE_BUFFER, NULL };
 	struct bgx *bgx = context;
-	char bgx_sel[5];
+	char bgx_sel[8];
 
-	snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
+	snprintf(bgx_sel, sizeof(bgx_sel), "BGX%d", bgx->bgx_id);
 	if (ACPI_FAILURE(acpi_get_name(handle, ACPI_SINGLE_NAME, &string))) {
 		pr_warn("Invalid link device\n");
 		return AE_OK;
-- 
2.46.0

Re: [PATCH net] net: thunderx: Fix format-truncation warning in bgx_acpi_match_id()
Posted by Simon Horman 3 months ago
On Sun, Jul 06, 2025 at 12:51:42PM -0700, Alok Tiwari wrote:
> The buffer bgx_sel used in snprintf() was too small to safely hold
> the formatted string "BGX%d" for all valid bgx_id values. This caused
> a -Wformat-truncation warning with Werror enabled during build.
> 
> Increase the buffer size from 5 to 8 and use sizeof(bgx_sel) in
> snprintf() to ensure safety and suppress the warning.
> 
> Build warning:
>   CC      drivers/net/ethernet/cavium/thunder/thunder_bgx.o
>   drivers/net/ethernet/cavium/thunder/thunder_bgx.c: In function
> ‘bgx_acpi_match_id’:
>   drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:27: error: ‘%d’
> directive output may be truncated writing between 1 and 3 bytes into a
> region of size 2 [-Werror=format-truncation=]
>     snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
>                              ^~
>   drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:23: note:
> directive argument in the range [0, 255]
>     snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
>                          ^~~~~~~
>   drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:2: note:
> ‘snprintf’ output between 5 and 7 bytes into a destination of size 5
>     snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
> 
> compiler warning due to insufficient snprintf buffer size.
> 
> Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>

Thanks Alok,

I agree this is a good change.

However, by my reading the range of values of bgx->bgx_id is 0 - 8
because of the application of BGX_ID_MASK which restricts the
value to 3 bits.

If so, I don't think this is a bug and it should be targeted at net-next.
With a description of why it is not a bug.

Conversely, you think it is a bug, then I think an explanation as to why
would be nice to add to the commit description.  And A fixes tag is needed.

-- 
pw-bot: changes-requested

Re: [External] : Re: [PATCH net] net: thunderx: Fix format-truncation warning in bgx_acpi_match_id()
Posted by ALOK TIWARI 3 months ago

On 7/8/2025 12:46 AM, Simon Horman wrote:
>>    drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:23: note:
>> directive argument in the range [0, 255]
>>      snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
>>                           ^~~~~~~
>>    drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:2: note:
>> ‘snprintf’ output between 5 and 7 bytes into a destination of size 5
>>      snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
>>
>> compiler warning due to insufficient snprintf buffer size.
>>
>> Signed-off-by: Alok Tiwari<alok.a.tiwari@oracle.com>
> Thanks Alok,
> 
> I agree this is a good change.
> 
> However, by my reading the range of values of bgx->bgx_id is 0 - 8
> because of the application of BGX_ID_MASK which restricts the
> value to 3 bits.
> 
> If so, I don't think this is a bug and it should be targeted at net-next.
> With a description of why it is not a bug.
> 
> Conversely, you think it is a bug, then I think an explanation as to why
> would be nice to add to the commit description.  And A fixes tag is needed.

Thanks Simon,
It is compile warning, We can target it for net-next.

I will resend it with [PATCH net-next]

Thanks,
Alok
Re: [External] : Re: [PATCH net] net: thunderx: Fix format-truncation warning in bgx_acpi_match_id()
Posted by Simon Horman 3 months ago
On Tue, Jul 08, 2025 at 08:34:39AM +0530, ALOK TIWARI wrote:
> 
> 
> On 7/8/2025 12:46 AM, Simon Horman wrote:
> > >    drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:23: note:
> > > directive argument in the range [0, 255]
> > >      snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
> > >                           ^~~~~~~
> > >    drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1434:2: note:
> > > ‘snprintf’ output between 5 and 7 bytes into a destination of size 5
> > >      snprintf(bgx_sel, 5, "BGX%d", bgx->bgx_id);
> > > 
> > > compiler warning due to insufficient snprintf buffer size.
> > > 
> > > Signed-off-by: Alok Tiwari<alok.a.tiwari@oracle.com>
> > Thanks Alok,
> > 
> > I agree this is a good change.
> > 
> > However, by my reading the range of values of bgx->bgx_id is 0 - 8
> > because of the application of BGX_ID_MASK which restricts the
> > value to 3 bits.
> > 
> > If so, I don't think this is a bug and it should be targeted at net-next.
> > With a description of why it is not a bug.
> > 
> > Conversely, you think it is a bug, then I think an explanation as to why
> > would be nice to add to the commit description.  And A fixes tag is needed.
> 
> Thanks Simon,
> It is compile warning, We can target it for net-next.
> 
> I will resend it with [PATCH net-next]

Thanks, good plan.