ntb_netdev: correct skb leak
authorJon Mason <jon.mason@intel.com>
Sat, 19 Jan 2013 09:02:31 +0000 (02:02 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 20 Jan 2013 23:48:13 +0000 (15:48 -0800)
If ntb_netdev is unable to pass a new skb to the ntb transport for
future rx packets, it should free the newly alloc'ed skb in the error
case.  Found by Kernel memory leak detector.

Signed-off-by: Jon Mason <jon.mason@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ntb_netdev.c

index 0d4a6ee5a7f06f3f27e7dbc0b6b928fd1c03db13..28d6fea54384a216171c848083d4803a1b80f72e 100644 (file)
@@ -119,6 +119,7 @@ static void ntb_netdev_rx_handler(struct ntb_transport_qp *qp, void *qp_data,
 
        rc = ntb_transport_rx_enqueue(qp, skb, skb->data, ndev->mtu + ETH_HLEN);
        if (rc) {
+               dev_kfree_skb(skb);
                ndev->stats.rx_errors++;
                ndev->stats.rx_fifo_errors++;
        }