diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index 1023f881091e..cb031e851c12 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c @@ -355,8 +355,9 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, unsigned int mtu) struct flowi4 fl4; int hlen = LL_RESERVED_SPACE(dev); int tlen = dev->needed_tailroom; - unsigned int size = mtu; + unsigned int size; + size = min(mtu, IP_MAX_MTU); while (1) { skb = alloc_skb(size + hlen + tlen, GFP_ATOMIC | __GFP_NOWARN);