From: Erik Hugne <[email protected]>

When cancelling a subscription, we have to clear the cancel bit
in the request before iterating over any established subscriptions
with memcmp. Otherwise no subscription will ever be found, and it
will not be possible to unsubscribe.

Signed-off-by: Erik Hugne <[email protected]>
---
v2: clear bit in a more sensible way.. (comment from davem)

 net/tipc/topsrv.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/tipc/topsrv.c b/net/tipc/topsrv.c
index 4a708a4e8583..b45932d78004 100644
--- a/net/tipc/topsrv.c
+++ b/net/tipc/topsrv.c
@@ -363,6 +363,7 @@ static int tipc_conn_rcv_sub(struct tipc_topsrv *srv,
        struct tipc_subscription *sub;
 
        if (tipc_sub_read(s, filter) & TIPC_SUB_CANCEL) {
+               s->filter &= __constant_ntohl(~TIPC_SUB_CANCEL);
                tipc_conn_delete_sub(con, s);
                return 0;
        }
-- 
2.14.1



_______________________________________________
tipc-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to