| From 1740c29a46b30a2f157afc473156f157e599d4c2 Mon Sep 17 00:00:00 2001 |
| From: "xypron.glpk@gmx.de" <xypron.glpk@gmx.de> |
| Date: Tue, 17 May 2016 22:28:54 +0200 |
| Subject: net: ehea: avoid null pointer dereference |
| |
| From: xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
| |
| commit 1740c29a46b30a2f157afc473156f157e599d4c2 upstream. |
| |
| ehea_get_port may return NULL. Do not dereference NULL value. |
| |
| Fixes: 8c4877a4128e ("ehea: Use the standard logging functions") |
| Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
| Acked-by: Thadeu Lima de Souza Cascardo <cascardo@debian.org> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/ethernet/ibm/ehea/ehea_main.c | 9 ++++----- |
| 1 file changed, 4 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c |
| +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c |
| @@ -1169,16 +1169,15 @@ static void ehea_parse_eqe(struct ehea_a |
| ec = EHEA_BMASK_GET(NEQE_EVENT_CODE, eqe); |
| portnum = EHEA_BMASK_GET(NEQE_PORTNUM, eqe); |
| port = ehea_get_port(adapter, portnum); |
| + if (!port) { |
| + netdev_err(NULL, "unknown portnum %x\n", portnum); |
| + return; |
| + } |
| dev = port->netdev; |
| |
| switch (ec) { |
| case EHEA_EC_PORTSTATE_CHG: /* port state change */ |
| |
| - if (!port) { |
| - netdev_err(dev, "unknown portnum %x\n", portnum); |
| - break; |
| - } |
| - |
| if (EHEA_BMASK_GET(NEQE_PORT_UP, eqe)) { |
| if (!netif_carrier_ok(dev)) { |
| ret = ehea_sense_port_attr(port); |