Commit 6d1d1d39 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

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: default avatarDavid Lamparter <equinox@diac24.net>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a3bdb549
...@@ -48,8 +48,10 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -48,8 +48,10 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev)
rcu_read_lock(); rcu_read_lock();
if (is_multicast_ether_addr(dest)) { 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; goto out;
}
mdst = br_mdb_get(br, skb); mdst = br_mdb_get(br, skb);
if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment