aboutsummaryrefslogtreecommitdiffstats
path: root/net
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 /net
parent[XFRM]: ipsecv6 needs a space when printing audit record. (diff)
downloadlinux-dev-ec25615b9ddd5c584b4066652840581fdb6c5e7a.tar.xz
linux-dev-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>
Diffstat (limited to '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;