tipc: fix wrong publisher node address in link publications
authorJon Maloy <jmaloy@redhat.com>
Mon, 14 Feb 2022 01:38:52 +0000 (20:38 -0500)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Feb 2022 05:18:18 +0000 (21:18 -0800)
When a link comes up we add its presence to the name table to make it
possible for users to subscribe for link up/down events. However, after
a previous call signature change the binding is wrongly published with
the peer node as publishing node, instead of the own node as it should
be. This has the effect that the command 'tipc name table show' will
list the link binding (service type 2) with node scope and a peer node
as originator, something that obviously is impossible.

We correct this bug here.

Fixes: 50a3499ab853 ("tipc: simplify signature of tipc_namtbl_publish()")
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
Link: https://lore.kernel.org/r/20220214013852.2803940-1-jmaloy@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/tipc/node.c

index 9947b7d..fd95df3 100644 (file)
@@ -413,7 +413,7 @@ static void tipc_node_write_unlock(struct tipc_node *n)
        tipc_uaddr(&ua, TIPC_SERVICE_RANGE, TIPC_NODE_SCOPE,
                   TIPC_LINK_STATE, n->addr, n->addr);
        sk.ref = n->link_id;
-       sk.node = n->addr;
+       sk.node = tipc_own_addr(net);
        bearer_id = n->link_id & 0xffff;
        publ_list = &n->publ_list;