Message ID | 20170714120720.906842-14-arnd@arndb.de |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Arnd Bergmann <arnd@arndb.de> Date: Fri, 14 Jul 2017 14:07:05 +0200 > gcc reports that the temporary buffer for computing the > string length may be too small here: > > drivers/net/ethernet/cavium/liquidio/lio_ethtool.c: In function 'lio_get_eeprom_len': > /drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:21: error: 'sprintf' may write a terminating nul past the end of the destination [-Werror=format-overflow=] > len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:6: note: 'sprintf' output between 35 and 167 bytes into a destination of size 128 > len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", > > This extends it to 192 bytes, which is certainly enough. As far > as I could tell, there are no other constraints that require a specific > maximum size. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Applied.
The 07/14/2017 09:04, David Miller wrote: > From: Arnd Bergmann <arnd@arndb.de> > Date: Fri, 14 Jul 2017 14:07:05 +0200 > > > gcc reports that the temporary buffer for computing the > > string length may be too small here: > > > > drivers/net/ethernet/cavium/liquidio/lio_ethtool.c: In function > 'lio_get_eeprom_len': > > /drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:21: error: 'sprintf' > may write a terminating nul past the end of the destination [-Werror= > format-overflow=] > > len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:6: note: 'sprintf' > output between 35 and 167 bytes into a destination of size 128 > > len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", > > > > This extends it to 192 bytes, which is certainly enough. As far > > as I could tell, there are no other constraints that require a specific > > maximum size. > > > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > Applied. I had raised a bug for this earlier and attached a patch as well. http://cabugzilla1.caveonetworks.com/octeon_bugzilla/show_bug.cgi?id=26421
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c index 28ecda3d3404..ebd353bc78ff 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c @@ -335,7 +335,7 @@ lio_ethtool_get_channels(struct net_device *dev, static int lio_get_eeprom_len(struct net_device *netdev) { - u8 buf[128]; + u8 buf[192]; struct lio *lio = GET_LIO(netdev); struct octeon_device *oct_dev = lio->oct_dev; struct octeon_board_info *board_info;
gcc reports that the temporary buffer for computing the string length may be too small here: drivers/net/ethernet/cavium/liquidio/lio_ethtool.c: In function 'lio_get_eeprom_len': /drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:21: error: 'sprintf' may write a terminating nul past the end of the destination [-Werror=format-overflow=] len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:6: note: 'sprintf' output between 35 and 167 bytes into a destination of size 128 len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", This extends it to 192 bytes, which is certainly enough. As far as I could tell, there are no other constraints that require a specific maximum size. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/net/ethernet/cavium/liquidio/lio_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)