From: Rafał Miłecki Date: Fri, 14 Nov 2014 17:43:28 +0000 (+0100) Subject: cfg80211: protect fools returning NULL in add_virtual_intf X-Git-Tag: v3.19-rc1~118^2~134^2~2^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d687cbb703f50980e155c5642cf229ec2bb45e3e;p=thirdparty%2Flinux.git cfg80211: protect fools returning NULL in add_virtual_intf Callback add_virtual_intf is supposed to return ERR_PTR and trying to return NULL results in some "Unable to handle kernel paging request", etc. As it may be complicated to debug & trace, let's catch it (WARN). Signed-off-by: Rafał Miłecki Signed-off-by: Johannes Berg --- diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index dd5a827f9cb0e..5cfd75dfff673 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -2645,7 +2645,10 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info) wdev = rdev_add_virtual_intf(rdev, nla_data(info->attrs[NL80211_ATTR_IFNAME]), type, err ? NULL : &flags, ¶ms); - if (IS_ERR(wdev)) { + if (WARN_ON(!wdev)) { + nlmsg_free(msg); + return -EPROTO; + } else if (IS_ERR(wdev)) { nlmsg_free(msg); return PTR_ERR(wdev); }