Message ID | 20100729111231.GA30021@gondor.apana.org.au |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Herbert Xu <herbert@gondor.apana.org.au> Date: Thu, 29 Jul 2010 19:12:31 +0800 > bridge: Fix skb leak when multicast parsing fails on TX > > On the bridge TX path we're leaking an skb when br_multicast_rcv > returns an error. > > Reported-by: David Lamparter <equinox@diac24.net> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Applied to net-2.6, thanks! -- 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 --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 753fc42..f49f20b 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -47,8 +47,10 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) skb_pull(skb, ETH_HLEN); if (is_multicast_ether_addr(dest)) { - if (br_multicast_rcv(br, NULL, skb)) + if (br_multicast_rcv(br, NULL, skb)) { + kfree_skb(skb); goto out; + } mdst = br_mdb_get(br, skb); if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb))