tipc: Fix end of loop tests for list_for_each_entry()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 22 Feb 2022 13:43:12 +0000 (16:43 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 2 Mar 2022 10:42:49 +0000 (11:42 +0100)
commitb692d5dc6f541961379e123e31c4bea8ba0725f1
tree12544cc2e87ed3bd3f31b6d5fc61351c58896c2c
parentc5722243d0e5428f3f62682fb38f03a1698578ba
tipc: Fix end of loop tests for list_for_each_entry()

commit a1f8fec4dac8bc7b172b2bdbd881e015261a6322 upstream.

These tests are supposed to check if the loop exited via a break or not.
However the tests are wrong because if we did not exit via a break then
"p" is not a valid pointer.  In that case, it's the equivalent of
"if (*(u32 *)sr == *last_key) {".  That's going to work most of the time,
but there is a potential for those to be equal.

Fixes: 1593123a6a49 ("tipc: add name table dump to new netlink api")
Fixes: 1a1a143daf84 ("tipc: add publication dump to new netlink api")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/tipc/name_table.c
net/tipc/socket.c