mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-12 02:04:43 -04:00
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>
This commit is contained in:
committed by
David S. Miller
parent
c7673e4dea
commit
56c0da495a
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user