X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fbridge%2Fbr_forward.c;h=ef9f2095f96e37dae664786b70638b46befd88da;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=1589763867d0dee139c3250a9973833d0b21818d;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c index 158976386..ef9f2095f 100644 --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c @@ -31,13 +31,17 @@ static inline int should_deliver(const struct net_bridge_port *p, int br_dev_queue_push_xmit(struct sk_buff *skb) { + if (skb->len > skb->dev->mtu) + kfree_skb(skb); + else { #ifdef CONFIG_BRIDGE_NETFILTER - /* ip_refrag calls ip_fragment, which doesn't copy the MAC header. */ - nf_bridge_maybe_copy_header(skb); + /* ip_refrag calls ip_fragment, doesn't copy the MAC header. */ + nf_bridge_maybe_copy_header(skb); #endif - skb_push(skb, ETH_HLEN); + skb_push(skb, ETH_HLEN); - dev_queue_xmit(skb); + dev_queue_xmit(skb); + } return 0; }