Skip to content

Commit

Permalink
bridge: dont send notification when skb->len == 0 in rtnl_bridge_notify
Browse files Browse the repository at this point in the history
Reported in: https://bugzilla.kernel.org/show_bug.cgi?id=92081

This patch avoids calling rtnl_notify if the device ndo_bridge_getlink
handler does not return any bytes in the skb.

Alternately, the skb->len check can be moved inside rtnl_notify.

For the bridge vlan case described in 92081, there is also a fix needed
in bridge driver to generate a proper notification. Will fix that in
subsequent patch.

v2: rebase patch on net tree

Signed-off-by: Roopa Prabhu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
roopa-prabhu authored and davem330 committed Jan 29, 2015
1 parent 95224ac commit 59ccaaa
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion net/core/rtnetlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -2895,12 +2895,16 @@ static int rtnl_bridge_notify(struct net_device *dev, u16 flags)
goto errout;
}

if (!skb->len)
goto errout;

rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
return 0;
errout:
WARN_ON(err == -EMSGSIZE);
kfree_skb(skb);
rtnl_set_sk_err(net, RTNLGRP_LINK, err);
if (err)
rtnl_set_sk_err(net, RTNLGRP_LINK, err);
return err;
}

Expand Down

0 comments on commit 59ccaaa

Please sign in to comment.