netfilter: ctnetlink: remove refcounting in expectation dumpers
authorFlorian Westphal <fw@strlen.de>
Fri, 1 Aug 2025 15:25:09 +0000 (17:25 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 7 Aug 2025 11:19:26 +0000 (13:19 +0200)
commit1492e3dcb2be3aa46d1963da96aa9593e4e4db5a
tree488e770b3a9c41911e8b3203ffcd8496987e6e40
parentde788b2e6227462b6dcd0e07474e72c089008f74
netfilter: ctnetlink: remove refcounting in expectation dumpers

Same pattern as previous patch: do not keep the expectation object
alive via refcount, only store a cookie value and then use that
as the skip hint for dump resumption.

AFAICS this has the same issue as the one resolved in the conntrack
dumper, when we do
  if (!refcount_inc_not_zero(&exp->use))

to increment the refcount, there is a chance that exp == last, which
causes a double-increment of the refcount and subsequent memory leak.

Fixes: cf6994c2b981 ("[NETFILTER]: nf_conntrack_netlink: sync expectation dumping with conntrack table dumping")
Fixes: e844a928431f ("netfilter: ctnetlink: allow to dump expectation per master conntrack")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_netlink.c