tipc: check nl sock before parsing nested attributes
authorRichard Alpe <[email protected]>
Mon, 16 May 2016 09:14:54 +0000 (11:14 +0200)
committerDavid S. Miller <[email protected]>
Tue, 17 May 2016 01:58:54 +0000 (21:58 -0400)
Make sure the socket for which the user is listing publication exists
before parsing the socket netlink attributes.

Prior to this patch a call without any socket caused a NULL pointer
dereference in tipc_nl_publ_dump().

Tested-and-reported-by: Baozeng Ding <[email protected]>
Signed-off-by: Richard Alpe <[email protected]>
Acked-by: Jon Maloy <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
net/tipc/socket.c

index 12628890c2190b9cff66a12d2d2169c1192be761..3b7a79991d55ddb4dc3f6629ac37c7cd6ebf1a87 100644 (file)
@@ -2853,6 +2853,9 @@ int tipc_nl_publ_dump(struct sk_buff *skb, struct netlink_callback *cb)
                if (err)
                        return err;
 
+               if (!attrs[TIPC_NLA_SOCK])
+                       return -EINVAL;
+
                err = nla_parse_nested(sock, TIPC_NLA_SOCK_MAX,
                                       attrs[TIPC_NLA_SOCK],
                                       tipc_nl_sock_policy);