[PATCH 4.4 03/75] tipc: check nl sock before parsing nested attributes

From: Greg Kroah-Hartman
Date: Wed Jun 22 2016 - 19:24:50 EST


4.4-stable review patch. If anyone has any objections, please let me know.

------------------

From: Richard Alpe <richard.alpe@xxxxxxxxxxxx>

[ Upstream commit 45e093ae2830cd1264677d47ff9a95a71f5d9f9c ]

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 <sploving1@xxxxxxxxx>
Signed-off-by: Richard Alpe <richard.alpe@xxxxxxxxxxxx>
Acked-by: Jon Maloy <jon.maloy@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
net/tipc/socket.c | 3 +++
1 file changed, 3 insertions(+)

--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -2814,6 +2814,9 @@ int tipc_nl_publ_dump(struct sk_buff *sk
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);