diff options
Diffstat (limited to 'net/core/rtnetlink.c')
| -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 | ||
