From: Robin Murphy <robin.murphy@arm.com> To: Arnd Bergmann <arnd@arndb.de>, linux-kernel@vger.kernel.org, Sunil Goutham <sgoutham@cavium.com>, Robert Richter <rric@kernel.org> Cc: George Cherian <george.cherian@cavium.com>, "James E . J . Bottomley" <jejb@linux.vnet.ibm.com>, linux-scsi@vger.kernel.org, "Martin K . Petersen" <martin.petersen@oracle.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, x86@kernel.org, Radha Mohan Chintakuntla <rchintakuntla@cavium.com>, Vadim Lomovtsev <Vadim.Lomovtsev@caviumnetworks.com>, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, Thanneeru Srinivasulu <tsrinivasulu@cavium.com>, akpm@linux-foundation.org, Linus Torvalds <torvalds@linux-foundation.org>, "David S . Miller" <davem@davemloft.net>, Guenter Roeck <linux@roeck-us.net> Subject: Re: [PATCH 11/22] net: thunder_bgx: avoid format string overflow warning Date: Fri, 14 Jul 2017 13:33:28 +0100 [thread overview] Message-ID: <b741f219-c025-db9a-81ce-3c8e5ab33310@arm.com> (raw) In-Reply-To: <20170714120720.906842-12-arnd@arndb.de> On 14/07/17 13:07, Arnd Bergmann wrote: > gcc warns that the temporary buffer might be too small here: > > drivers/net/ethernet/cavium/thunder/thunder_bgx.c: In function 'bgx_probe': > drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1020:16: error: '%d' directive writing between 1 and 10 bytes into a region of size between 9 and 11 [-Werror=format-overflow=] > sprintf(str, "BGX%d LMAC%d mode", bgx->bgx_id, lmacid); > ^~~~~~~~~~~~~~~~~~~ > drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1020:16: note: directive argument in the range [0, 2147483647] > drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1020:3: note: 'sprintf' output between 16 and 27 bytes into a destination of size 20 > > This probably can't happen, but it can't hurt to make it long > enough for the theoretical limit. Probably indeed - both bgx_id and lmacid are u8 here, which would make the maximum length of that string, including null terminator, exactly 20 characters. So in this case the warning is not only silly, it's actively wrong; sure, the arguments themselves are being promoted to ints at that point, but GCC *knows* the original type, or it couldn't have generated the correct code for the call :/ Robin. > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > index a0ca68ce3fbb..79112563a25a 100644 > --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > @@ -1008,7 +1008,7 @@ static void bgx_print_qlm_mode(struct bgx *bgx, u8 lmacid) > { > struct device *dev = &bgx->pdev->dev; > struct lmac *lmac; > - char str[20]; > + char str[27]; > > if (!bgx->is_dlm && lmacid) > return; >
WARNING: multiple messages have this Message-ID (diff)
From: robin.murphy@arm.com (Robin Murphy) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 11/22] net: thunder_bgx: avoid format string overflow warning Date: Fri, 14 Jul 2017 13:33:28 +0100 [thread overview] Message-ID: <b741f219-c025-db9a-81ce-3c8e5ab33310@arm.com> (raw) In-Reply-To: <20170714120720.906842-12-arnd@arndb.de> On 14/07/17 13:07, Arnd Bergmann wrote: > gcc warns that the temporary buffer might be too small here: > > drivers/net/ethernet/cavium/thunder/thunder_bgx.c: In function 'bgx_probe': > drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1020:16: error: '%d' directive writing between 1 and 10 bytes into a region of size between 9 and 11 [-Werror=format-overflow=] > sprintf(str, "BGX%d LMAC%d mode", bgx->bgx_id, lmacid); > ^~~~~~~~~~~~~~~~~~~ > drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1020:16: note: directive argument in the range [0, 2147483647] > drivers/net/ethernet/cavium/thunder/thunder_bgx.c:1020:3: note: 'sprintf' output between 16 and 27 bytes into a destination of size 20 > > This probably can't happen, but it can't hurt to make it long > enough for the theoretical limit. Probably indeed - both bgx_id and lmacid are u8 here, which would make the maximum length of that string, including null terminator, exactly 20 characters. So in this case the warning is not only silly, it's actively wrong; sure, the arguments themselves are being promoted to ints at that point, but GCC *knows* the original type, or it couldn't have generated the correct code for the call :/ Robin. > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > index a0ca68ce3fbb..79112563a25a 100644 > --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > @@ -1008,7 +1008,7 @@ static void bgx_print_qlm_mode(struct bgx *bgx, u8 lmacid) > { > struct device *dev = &bgx->pdev->dev; > struct lmac *lmac; > - char str[20]; > + char str[27]; > > if (!bgx->is_dlm && lmacid) > return; >
next prev parent reply other threads:[~2017-07-14 12:33 UTC|newest] Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-14 12:06 [PATCH 00/22] gcc-7 -Wformat-* warnings Arnd Bergmann 2017-07-14 12:06 ` [PATCH 01/22] kbuild: disable -Wformat-truncation warnings by default Arnd Bergmann 2017-07-14 12:06 ` [PATCH 02/22] scsi: megaraid: fix format-overflow warning Arnd Bergmann 2017-07-14 12:06 ` [PATCH 03/22] scsi: mpt3sas: fix format overflow warning Arnd Bergmann 2017-07-14 12:06 ` Arnd Bergmann 2017-07-14 12:06 ` [PATCH 04/22] scsi: fusion: fix string " Arnd Bergmann 2017-07-14 12:06 ` Arnd Bergmann 2017-07-17 9:17 ` David Laight 2017-07-17 9:17 ` David Laight 2017-07-17 12:00 ` Arnd Bergmann 2017-07-17 12:00 ` Arnd Bergmann 2017-07-17 12:00 ` Arnd Bergmann 2017-07-14 12:06 ` [PATCH 05/22] scsi: gdth: avoid buffer " Arnd Bergmann 2017-07-14 12:06 ` [PATCH 06/22] scsi: fnic: fix format string " Arnd Bergmann 2017-07-14 12:06 ` [PATCH 07/22] scsi: gdth: increase the procfs event buffer size Arnd Bergmann 2017-07-14 12:07 ` [PATCH 08/22] isdn: divert: fix sprintf buffer overflow warning Arnd Bergmann 2017-07-14 16:03 ` David Miller 2017-07-14 12:07 ` [PATCH 09/22] net: niu: fix format string overflow warning: Arnd Bergmann 2017-07-14 16:03 ` David Miller 2017-07-14 12:07 ` [PATCH 10/22] bnx2x: fix format overflow warning Arnd Bergmann 2017-07-14 16:03 ` David Miller 2017-07-14 12:07 ` [PATCH 11/22] net: thunder_bgx: avoid format string " Arnd Bergmann 2017-07-14 12:07 ` Arnd Bergmann 2017-07-14 12:07 ` Arnd Bergmann 2017-07-14 12:33 ` Robin Murphy [this message] 2017-07-14 12:33 ` Robin Murphy 2017-07-14 16:03 ` David Miller 2017-07-14 16:03 ` David Miller 2017-07-14 12:07 ` [PATCH 12/22] vmxnet3: avoid format strint " Arnd Bergmann 2017-07-14 16:04 ` David Miller 2017-07-14 12:07 ` [PATCH 13/22] liquidio: fix possible eeprom format string overflow Arnd Bergmann 2017-07-14 16:04 ` David Miller 2017-07-14 22:40 ` Burla, Satananda 2017-07-14 22:40 ` Burla, Satananda 2017-07-14 22:40 ` Burla, Satananda 2017-07-14 12:07 ` [PATCH 14/22] [media] usbvision-i2c: fix format overflow warning Arnd Bergmann 2017-07-17 12:53 ` Hans Verkuil 2017-07-17 12:57 ` Arnd Bergmann 2017-07-17 12:59 ` Hans Verkuil 2017-07-14 12:07 ` [PATCH 15/22] hwmon: applesmc: fix format string overflow Arnd Bergmann 2017-07-14 14:06 ` Guenter Roeck 2017-07-14 12:07 ` [PATCH 16/22] x86: intel-mid: fix a format string overflow warning Arnd Bergmann 2017-07-14 12:07 ` [PATCH 17/22] platform/x86: alienware-wmi: fix " Arnd Bergmann 2017-07-14 18:30 ` Mario.Limonciello 2017-07-14 18:30 ` Mario.Limonciello 2017-07-14 19:18 ` Andy Shevchenko 2017-07-14 19:37 ` Arnd Bergmann 2017-07-14 19:49 ` Andy Shevchenko 2017-07-14 12:07 ` [PATCH 18/22] gpio: acpi: fix string overflow for large pin numbers Arnd Bergmann 2017-07-14 12:52 ` Andy Shevchenko 2017-07-14 19:59 ` Arnd Bergmann 2017-07-14 19:59 ` Arnd Bergmann 2017-07-14 19:59 ` Arnd Bergmann 2017-07-14 12:07 ` [PATCH 19/22] block: DAC960: shut up format-overflow warning Arnd Bergmann 2017-07-14 14:04 ` Jens Axboe 2017-07-14 14:04 ` Jens Axboe 2017-07-14 12:07 ` [PATCH 20/22] sound: pci: avoid string overflow warnings Arnd Bergmann 2017-07-14 12:07 ` Arnd Bergmann 2017-07-14 12:28 ` Takashi Iwai 2017-07-14 12:28 ` Takashi Iwai 2017-07-18 11:52 ` Arnd Bergmann 2017-07-14 12:07 ` [PATCH 21/22] fscache: fix fscache_objlist_show format processing Arnd Bergmann 2017-09-04 18:29 ` Jérémy Lefaure 2017-07-14 12:07 ` [PATCH 22/22] IB/mlx4: fix sprintf format warning Arnd Bergmann 2017-07-14 13:48 ` Leon Romanovsky 2017-07-25 1:48 ` [PATCH 00/22] gcc-7 -Wformat-* warnings Martin K. Petersen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=b741f219-c025-db9a-81ce-3c8e5ab33310@arm.com \ --to=robin.murphy@arm.com \ --cc=Vadim.Lomovtsev@caviumnetworks.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=davem@davemloft.net \ --cc=george.cherian@cavium.com \ --cc=gregkh@linuxfoundation.org \ --cc=jejb@linux.vnet.ibm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=martin.petersen@oracle.com \ --cc=netdev@vger.kernel.org \ --cc=rchintakuntla@cavium.com \ --cc=rric@kernel.org \ --cc=sgoutham@cavium.com \ --cc=torvalds@linux-foundation.org \ --cc=tsrinivasulu@cavium.com \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.