diff options
author | Eric Dumazet <edumazet@google.com> | 2012-06-25 15:37:19 -0700 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2015-03-06 00:39:20 +0000 |
commit | ee558c90853a71c318a2d15ba2e747623fa0af86 (patch) | |
tree | c1208e3afed53c1291531c98bdaf6d707a363c4e /net/ipv6 | |
parent | b2fcc089bcb64b2f1667eb3046cb72f9529ec2bc (diff) | |
download | linux-rt-ee558c90853a71c318a2d15ba2e747623fa0af86.tar.gz |
ipv6: fib: fix fib dump restart
commit fa809e2fd6e317226c046202a88520962672eac0 upstream.
Commit 2bec5a369ee79576a3 (ipv6: fib: fix crash when changing large fib
while dumping it) introduced ability to restart the dump at tree root,
but failed to skip correctly a count of already dumped entries. Code
didn't match Patrick intent.
We must skip exactly the number of already dumped entries.
Note that like other /proc/net files or netlink producers, we could
still dump some duplicates entries.
Reported-by: Debabrata Banerjee <dbavatar@gmail.com>
Reported-by: Josh Hunt <johunt@akamai.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/ip6_fib.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index 443724f54724..45e01da104e3 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -1276,8 +1276,8 @@ static int fib6_walk_continue(struct fib6_walker_t *w) if (w->leaf && fn->fn_flags&RTN_RTINFO) { int err; - if (w->count < w->skip) { - w->count++; + if (w->skip) { + w->skip--; continue; } |