diff options
-rw-r--r-- | net/core/rtnetlink.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 9cf6fe9ddc0c..446cbaf81185 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -2895,12 +2895,16 @@ static int rtnl_bridge_notify(struct net_device *dev, u16 flags) | |||
2895 | goto errout; | 2895 | goto errout; |
2896 | } | 2896 | } |
2897 | 2897 | ||
2898 | if (!skb->len) | ||
2899 | goto errout; | ||
2900 | |||
2898 | rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); | 2901 | rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); |
2899 | return 0; | 2902 | return 0; |
2900 | errout: | 2903 | errout: |
2901 | WARN_ON(err == -EMSGSIZE); | 2904 | WARN_ON(err == -EMSGSIZE); |
2902 | kfree_skb(skb); | 2905 | kfree_skb(skb); |
2903 | rtnl_set_sk_err(net, RTNLGRP_LINK, err); | 2906 | if (err) |
2907 | rtnl_set_sk_err(net, RTNLGRP_LINK, err); | ||
2904 | return err; | 2908 | return err; |
2905 | } | 2909 | } |
2906 | 2910 | ||