mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
netfilter: nf_conntrack: do not skip entries in /proc/net/nf_conntrack
ct_seq_show() has an opportunistic garbage collector :
if (nf_ct_should_gc(ct)) {
nf_ct_kill(ct);
goto release;
}
So if one nf_conn is killed there, next time ct_get_next() runs,
we skip the following item in the bucket, even if it should have
been displayed if gc did not take place.
We can decrement st->skip_elems to tell ct_get_next() one of the items
was removed from the chain.
Fixes: 58e207e498 ("netfilter: evict stale entries when user reads /proc/net/nf_conntrack")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
This commit is contained in:
committed by
Florian Westphal
parent
94bd247bc2
commit
c5ba345b2d
@@ -317,6 +317,9 @@ static int ct_seq_show(struct seq_file *s, void *v)
|
||||
smp_acquire__after_ctrl_dep();
|
||||
|
||||
if (nf_ct_should_gc(ct)) {
|
||||
struct ct_iter_state *st = s->private;
|
||||
|
||||
st->skip_elems--;
|
||||
nf_ct_kill(ct);
|
||||
goto release;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user