Commit efacfbcb authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

[IPV6]: Fix rtnetlink dump infinite loop

The recent change to netlink dump "done" callback handling broke IPv6
which played dirty tricks with the "done" callback.  This causes an
infinite loop during a dump.

The following patch fixes it.

This bug was reported by Jeff Garzik.
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4f005551
...@@ -1701,10 +1701,8 @@ static void fib6_dump_end(struct netlink_callback *cb) ...@@ -1701,10 +1701,8 @@ static void fib6_dump_end(struct netlink_callback *cb)
fib6_walker_unlink(w); fib6_walker_unlink(w);
kfree(w); kfree(w);
} }
if (cb->args[1]) {
cb->done = (void*)cb->args[1]; cb->done = (void*)cb->args[1];
cb->args[1] = 0; cb->args[1] = 0;
}
} }
static int fib6_dump_done(struct netlink_callback *cb) static int fib6_dump_done(struct netlink_callback *cb)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment