]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
liquidio: fix possible eeprom format string overflow
authorArnd Bergmann <arnd@arndb.de>
Fri, 14 Jul 2017 12:07:05 +0000 (14:07 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Jul 2017 16:03:11 +0000 (09:03 -0700)
commit56c0da495a0b38f8ac0c0c0e3fcc750ea449daea
tree4bf2f6bbe9eeddc040331866231f36e36e3a0ec3
parentc7673e4dea9a338e00fa26cdd42d3697e8e22319
liquidio: fix possible eeprom format string overflow

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>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c