Message ID | 20190103022613.20263-1-dsahern@kernel.org |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] ipv6: Fix dump of specific table with strict checking | expand |
From: David Ahern <dsahern@kernel.org> Date: Wed, 2 Jan 2019 18:26:13 -0800 > From: David Ahern <dsahern@gmail.com> > > Dump of a specific table with strict checking enabled is looping. The > problem is that the end of the table dump is not marked in the cb. When > dumping a specific table, cb args 0 and 1 are not used (they are the hash > index and entry with an hash table index when dumping all tables). Re-use > args[0] to hold a 'done' flag for the specific table dump. > > Fixes: 13e38901d46ca ("net/ipv6: Plumb support for filtering route dumps") > Reported-by: Jakub Kicinski <jakub.kicinski@netronome.com> > Signed-off-by: David Ahern <dsahern@gmail.com> Applied and queued up for -stable.
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index ae3786132c23..6613d8dbb0e5 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -627,7 +627,11 @@ static int inet6_dump_fib(struct sk_buff *skb, struct netlink_callback *cb) return -ENOENT; } - res = fib6_dump_table(tb, skb, cb); + if (!cb->args[0]) { + res = fib6_dump_table(tb, skb, cb); + if (!res) + cb->args[0] = 1; + } goto out; }