mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-24 18:44:07 +08:00
net: ionic: Use scnprintf() for avoiding potential buffer overflow
Since snprintf() returns the would-be-output size instead of the actual output size, the succeeding calls may go beyond the given buffer limit. Fix it by replacing with scnprintf(). Reviewed-by: Simon Horman <simon.horman@netronome.com> Acked-by: Shannon Nelson <snelson@pensando.io> Cc: "David S . Miller" <davem@davemloft.net> Cc: Jakub Kicinski <kuba@kernel.org> Cc: oss-drivers@netronome.com Cc: netdev@vger.kernel.org Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
413ae546f8
commit
38e0f746c4
@ -948,18 +948,18 @@ static void ionic_lif_rx_mode(struct ionic_lif *lif, unsigned int rx_mode)
|
||||
int i;
|
||||
#define REMAIN(__x) (sizeof(buf) - (__x))
|
||||
|
||||
i = snprintf(buf, sizeof(buf), "rx_mode 0x%04x -> 0x%04x:",
|
||||
lif->rx_mode, rx_mode);
|
||||
i = scnprintf(buf, sizeof(buf), "rx_mode 0x%04x -> 0x%04x:",
|
||||
lif->rx_mode, rx_mode);
|
||||
if (rx_mode & IONIC_RX_MODE_F_UNICAST)
|
||||
i += snprintf(&buf[i], REMAIN(i), " RX_MODE_F_UNICAST");
|
||||
i += scnprintf(&buf[i], REMAIN(i), " RX_MODE_F_UNICAST");
|
||||
if (rx_mode & IONIC_RX_MODE_F_MULTICAST)
|
||||
i += snprintf(&buf[i], REMAIN(i), " RX_MODE_F_MULTICAST");
|
||||
i += scnprintf(&buf[i], REMAIN(i), " RX_MODE_F_MULTICAST");
|
||||
if (rx_mode & IONIC_RX_MODE_F_BROADCAST)
|
||||
i += snprintf(&buf[i], REMAIN(i), " RX_MODE_F_BROADCAST");
|
||||
i += scnprintf(&buf[i], REMAIN(i), " RX_MODE_F_BROADCAST");
|
||||
if (rx_mode & IONIC_RX_MODE_F_PROMISC)
|
||||
i += snprintf(&buf[i], REMAIN(i), " RX_MODE_F_PROMISC");
|
||||
i += scnprintf(&buf[i], REMAIN(i), " RX_MODE_F_PROMISC");
|
||||
if (rx_mode & IONIC_RX_MODE_F_ALLMULTI)
|
||||
i += snprintf(&buf[i], REMAIN(i), " RX_MODE_F_ALLMULTI");
|
||||
i += scnprintf(&buf[i], REMAIN(i), " RX_MODE_F_ALLMULTI");
|
||||
netdev_dbg(lif->netdev, "lif%d %s\n", lif->index, buf);
|
||||
|
||||
err = ionic_adminq_post_wait(lif, &ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user