diff mbox

fm10k: fix memory leak

Message ID 20151117142427.37a4cc36@samsung9
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

stephen hemminger Nov. 17, 2015, 10:24 p.m. UTC
This was detected by Coverity.
The function skb_cow_head leaves skb alone on failure, so caller needs
to free.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

David Miller Nov. 18, 2015, 8:06 p.m. UTC | #1
From: Stephen Hemminger <shemming@brocade.com>
Date: Tue, 17 Nov 2015 14:24:27 -0800

> This was detected by Coverity.
> The function skb_cow_head leaves skb alone on failure, so caller needs
> to free.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kirsher, Jeffrey T Nov. 18, 2015, 8:47 p.m. UTC | #2
On Wed, 2015-11-18 at 15:06 -0500, David Miller wrote:
> From: Stephen Hemminger <shemming@brocade.com>
> Date: Tue, 17 Nov 2015 14:24:27 -0800
> 
> > This was detected by Coverity.
> > The function skb_cow_head leaves skb alone on failure, so caller
> > needs
> > to free.
> > 
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> 
> Applied.

Thanks, got slammed with emails and this got overlooked.
Eric Dumazet Nov. 18, 2015, 9:53 p.m. UTC | #3
On Tue, 2015-11-17 at 14:24 -0800, Stephen Hemminger wrote:
> This was detected by Coverity.
> The function skb_cow_head leaves skb alone on failure, so caller needs
> to free.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> 
> --- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c	2015-11-17 13:33:40.032694657 -0800
> +++ b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c	2015-11-17 14:13:03.086942495 -0800
> @@ -627,8 +627,10 @@ static netdev_tx_t fm10k_xmit_frame(stru
>  
>  		/* verify the skb head is not shared */
>  		err = skb_cow_head(skb, 0);
> -		if (err)
> +		if (err) {
> +			dev_kfree_skb(skb);
>  			return NETDEV_TX_OK;
> +		}
>  
>  		/* locate vlan header */
>  


kfree_skb() to be drop monitor friendly ?


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c	2015-11-17 13:33:40.032694657 -0800
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c	2015-11-17 14:13:03.086942495 -0800
@@ -627,8 +627,10 @@  static netdev_tx_t fm10k_xmit_frame(stru
 
 		/* verify the skb head is not shared */
 		err = skb_cow_head(skb, 0);
-		if (err)
+		if (err) {
+			dev_kfree_skb(skb);
 			return NETDEV_TX_OK;
+		}
 
 		/* locate vlan header */
 		vhdr = (struct vlan_hdr *)(skb->data + ETH_HLEN);