]> err.no Git - linux-2.6/commitdiff
[IPV4]: Fix BUG of ip_rt_send_redirect()
authorLi Yewang <lyw@nanjing-fnst.com>
Mon, 18 Dec 2006 08:26:35 +0000 (00:26 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 Dec 2006 08:26:35 +0000 (00:26 -0800)
Fix the redirect packet of the router if the jiffies wraparound.

Signed-off-by: Li Yewang <lyw@nanjing-fnst.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/route.c

index 1aaff0a2e09854604aca047e8f555170ae37427b..2daa0dc19d339e5dd3659ca63a9118279d4cc039 100644 (file)
@@ -1325,7 +1325,8 @@ void ip_rt_send_redirect(struct sk_buff *skb)
        /* Check for load limit; set rate_last to the latest sent
         * redirect.
         */
-       if (time_after(jiffies,
+       if (rt->u.dst.rate_tokens == 0 ||
+           time_after(jiffies,
                       (rt->u.dst.rate_last +
                        (ip_rt_redirect_load << rt->u.dst.rate_tokens)))) {
                icmp_send(skb, ICMP_REDIRECT, ICMP_REDIR_HOST, rt->rt_gateway);