ipt_hashlimit.c: expire's type overflow when showing tuples at bad moment.
PATCH 1/2 ipt_hashlimit.c: expire's type overflow when showing tuples at bad moment.
Name: Expire's type overflow when showing tuples at bad moment.
Status: Tested under Linux 2.6.10
Signed-off-by Samuel Jean <[email protected]>
When garbage collector runs slow enough, we have a chance to print expired tuples before they get freed. We see weird expiry time.
This patch just prints 0 if expiry is less than or equal to current jiffie.
Please disregard my previous patch.
ipv4/netfilter/ipt_hashlimit.c 2005-01-26 22:22:07.000000000 -0500 renamed from ipv4/netfilter/ipt_hashlimit.c.orig 2005-01-26 22:17:54.000000000 -0500 +2 -2
@@ -608,8 +608,8 @@ static inline int dl_seq_real_show(struc /* recalculate to show accurate numbers */ rateinfo_recalc(ent, jiffies); - return seq_printf(s, "%ld %u.%u.%u.%u:%u->%u.%u.%u.%u:%u %u %u %u\n", - (ent->expires - jiffies)/HZ, + return seq_printf(s, "%lu %u.%u.%u.%u:%u->%u.%u.%u.%u:%u %u %u %u\n", + (ent->expires > jiffies) ? (ent->expires - jiffies)/HZ : 0, NIPQUAD(ent->dst.src_ip), ntohs(ent->dst.src_port), NIPQUAD(ent->dst.dst_ip), ntohs(ent->dst.dst_port), ent->rateinfo.credit, ent->rateinfo.credit_cap,