From: YOSHIFUJI Hideaki / 吉藤英明 Date: Mon, 15 Mar 2010 19:26:56 +0000 (+0000) Subject: bridge br_multicast: Fix skb leakage in error path. X-Git-Tag: v2.6.34-rc2~28^2~4 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=8440853bb70010f2f8edc26cb0f7af60da8b2c5a;p=~shefty%2Frdma-dev.git bridge br_multicast: Fix skb leakage in error path. Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller --- diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 19618f25b4c..6980625537c 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -991,7 +991,7 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, err = pskb_trim_rcsum(skb2, len); if (err) - return err; + goto err_out; } len -= ip_hdrlen(skb2); @@ -1013,7 +1013,7 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, case CHECKSUM_NONE: skb2->csum = 0; if (skb_checksum_complete(skb2)) - return -EINVAL; + goto out; } err = 0; @@ -1040,6 +1040,7 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, out: __skb_push(skb2, offset); +err_out: if (skb2 != skb) kfree_skb(skb2); return err;