summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-03-22 12:24:38 -0700
committerDavid S. Miller <davem@davemloft.net>2007-03-22 12:24:38 -0700
commitec25615b9ddd5c584b4066652840581fdb6c5e7a (patch)
treee84b4eff19ef3919232bb54d53b6e1ffd41d9cdc
parent961995582e3752e983dc3906a57546a188007440 (diff)
downloadlinux-stable-ec25615b9ddd5c584b4066652840581fdb6c5e7a.tar.gz
linux-stable-ec25615b9ddd5c584b4066652840581fdb6c5e7a.tar.bz2
linux-stable-ec25615b9ddd5c584b4066652840581fdb6c5e7a.zip
[NET]: Fix fib_rules dump race
fib_rules_dump needs to use list_for_each_entry_rcu to protect against concurrent changes to the rules list. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/core/fib_rules.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index 215f1bff048f..3aea4e87d3d7 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -374,7 +374,7 @@ int fib_rules_dump(struct sk_buff *skb, struct netlink_callback *cb, int family)
return -EAFNOSUPPORT;
rcu_read_lock();
- list_for_each_entry(rule, ops->rules_list, list) {
+ list_for_each_entry_rcu(rule, ops->rules_list, list) {
if (idx < cb->args[0])
goto skip;