diff options
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/netlink_compat.c | 2 | ||||
-rw-r--r-- | net/tipc/socket.c | 3 | ||||
-rw-r--r-- | net/tipc/subscr.c | 7 |
3 files changed, 7 insertions, 5 deletions
diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c index ce9121e8e990..e5ec86dd8dc1 100644 --- a/net/tipc/netlink_compat.c +++ b/net/tipc/netlink_compat.c @@ -712,7 +712,7 @@ static int tipc_nl_compat_name_table_dump(struct tipc_nl_compat_msg *msg, goto out; tipc_tlv_sprintf(msg->rep, "%-10u %s", - nla_get_u32(publ[TIPC_NLA_PUBL_REF]), + nla_get_u32(publ[TIPC_NLA_PUBL_KEY]), scope_str[nla_get_u32(publ[TIPC_NLA_PUBL_SCOPE])]); out: tipc_tlv_sprintf(msg->rep, "\n"); diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 20cc6df07157..d41d424b9913 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -2804,6 +2804,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); diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c index 1c147c869c2e..948f316019d7 100644 --- a/net/tipc/subscr.c +++ b/net/tipc/subscr.c @@ -302,11 +302,10 @@ static void subscr_conn_msg_event(struct net *net, int conid, struct tipc_net *tn = net_generic(net, tipc_net_id); spin_lock_bh(&subscriber->lock); - subscr_subscribe(net, (struct tipc_subscr *)buf, subscriber, &sub); - if (sub) - tipc_nametbl_subscribe(sub); - else + if (subscr_subscribe(net, (struct tipc_subscr *)buf, subscriber, &sub)) tipc_conn_terminate(tn->topsrv, subscriber->conid); + else + tipc_nametbl_subscribe(sub); spin_unlock_bh(&subscriber->lock); } |