net/ncsi: check for null return from call to nla_nest_start
authorColin Ian King <colin.king@canonical.com>
Mon, 26 Mar 2018 11:27:12 +0000 (12:27 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Mar 2018 14:38:26 +0000 (10:38 -0400)
The call to nla_nest_start calls nla_put which can lead to a NULL
return so it's possible for attr to become NULL and we can potentially
get a NULL pointer dereference on attr.  Fix this by checking for
a NULL return.

Detected by CoverityScan, CID#1466125 ("Dereference null return")

Fixes: 955dc68cb9b2 ("net/ncsi: Add generic netlink family")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ncsi/ncsi-netlink.c

index 05fcfb4..8d7e849 100644 (file)
@@ -190,6 +190,10 @@ static int ncsi_pkg_info_nl(struct sk_buff *msg, struct genl_info *info)
        package_id = nla_get_u32(info->attrs[NCSI_ATTR_PACKAGE_ID]);
 
        attr = nla_nest_start(skb, NCSI_ATTR_PACKAGE_LIST);
+       if (!attr) {
+               kfree_skb(skb);
+               return -EMSGSIZE;
+       }
        rc = ncsi_write_package_info(skb, ndp, package_id);
 
        if (rc) {