summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorKangjie Lu <kjlu@umn.edu>2019-03-11 09:01:41 +0300
committerDavid S. Miller <davem@davemloft.net>2019-03-11 22:29:17 +0300
commit41af8b3a097c6fd17a4867efa25966927094f57c (patch)
tree07c6516a7ffb0278eef8bc6d40bac6eab72eb028 /drivers/net
parentdd9d9f5907bb475f8b1796c47d4ecc7fb9b72136 (diff)
downloadlinux-41af8b3a097c6fd17a4867efa25966927094f57c.tar.xz
net: lio_core: fix two NULL pointer dereferences
In case octeon_alloc_soft_command fails, the fix reports the error and returns to avoid NULL pointer dereferences. Signed-off-by: Kangjie Lu <kjlu@umn.edu> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/cavium/liquidio/lio_core.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c
index e21bf3724611..1c50c10b5a16 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_core.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c
@@ -1211,6 +1211,11 @@ int liquidio_change_mtu(struct net_device *netdev, int new_mtu)
sc = (struct octeon_soft_command *)
octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE, 16, 0);
+ if (!sc) {
+ netif_info(lio, rx_err, lio->netdev,
+ "Failed to allocate soft command\n");
+ return -ENOMEM;
+ }
ncmd = (union octnet_cmd *)sc->virtdptr;
@@ -1684,6 +1689,11 @@ int liquidio_set_fec(struct lio *lio, int on_off)
sc = octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE,
sizeof(struct oct_nic_seapi_resp), 0);
+ if (!sc) {
+ dev_err(&oct->pci_dev->dev,
+ "Failed to allocate soft command\n");
+ return -ENOMEM;
+ }
ncmd = sc->virtdptr;
resp = sc->virtrptr;