From 09a5ea5ab5c8c362e9d883e792a5a0f8abd1da20 Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Sat, 18 Jun 2005 14:42:44 +0000 Subject: bugfix --- communication.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'communication.c') diff --git a/communication.c b/communication.c index 6db6858..bfe9110 100644 --- a/communication.c +++ b/communication.c @@ -350,7 +350,9 @@ void ebt_deliver_counters(struct ebt_u_replace *u_repl, int exec_style) new = newcounters; while (cc) { if (!next) { - while (!(entries = ebt_nr_to_chain(u_repl, chainnr++))); + while (!(entries = ebt_nr_to_chain(u_repl, chainnr++))) + if (chainnr > NF_BR_NUMHOOKS) + goto letscontinue;/* Prevent infinite loop for -D x:-1 */ if (!(next = entries->entries)) continue; } @@ -397,6 +399,7 @@ void ebt_deliver_counters(struct ebt_u_replace *u_repl, int exec_style) } cc = cc->next; } +letscontinue: free(u_repl->counters); u_repl->counters = newcounters; -- cgit v1.2.3