]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Fix IPv4/DECnet routing rule dumping
authorPatrick McHardy <kaber@trash.net>
Sat, 8 Jul 2006 20:39:35 +0000 (13:39 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 25 Jul 2006 03:35:27 +0000 (20:35 -0700)
When more rules are present than fit in a single skb, the remaining
rules are incorrectly skipped.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/decnet/dn_rules.c
net/ipv4/fib_rules.c

index 446faafe206596b11ec35bfbbaa3cc0b4cefa76b..2440d0504c324a6a74838845821bbbb2c93c2f2a 100644 (file)
@@ -400,9 +400,10 @@ int dn_fib_dump_rules(struct sk_buff *skb, struct netlink_callback *cb)
        rcu_read_lock();
        hlist_for_each_entry(r, node, &dn_fib_rules, r_hlist) {
                if (idx < s_idx)
-                       continue;
+                       goto next;
                if (dn_fib_fill_rule(skb, r, cb, NLM_F_MULTI) < 0)
                        break;
+next:
                idx++;
        }
        rcu_read_unlock();
index ec566f3e66c76d833ac5ef8fe3fb8ef2a2b9eebb..a66c96a253555318e49b7e9ef967bbb16907ed0e 100644 (file)
@@ -458,13 +458,13 @@ int inet_dump_rules(struct sk_buff *skb, struct netlink_callback *cb)
 
        rcu_read_lock();
        hlist_for_each_entry(r, node, &fib_rules, hlist) {
-
                if (idx < s_idx)
-                       continue;
+                       goto next;
                if (inet_fill_rule(skb, r, NETLINK_CB(cb->skb).pid,
                                   cb->nlh->nlmsg_seq,
                                   RTM_NEWRULE, NLM_F_MULTI) < 0)
                        break;
+next:
                idx++;
        }
        rcu_read_unlock();