|
@@ -2466,6 +2466,9 @@ int bond_3ad_lacpdu_recv(struct sk_buff *skb, struct net_device *dev, struct pac
|
|
if (!(dev->flags & IFF_MASTER))
|
|
if (!(dev->flags & IFF_MASTER))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
|
|
+ if (!pskb_may_pull(skb, sizeof(struct lacpdu)))
|
|
|
|
+ goto out;
|
|
|
|
+
|
|
read_lock(&bond->lock);
|
|
read_lock(&bond->lock);
|
|
slave = bond_get_slave_by_dev((struct bonding *)netdev_priv(dev),
|
|
slave = bond_get_slave_by_dev((struct bonding *)netdev_priv(dev),
|
|
orig_dev);
|
|
orig_dev);
|