diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2005-10-24 18:18:37 +0000 |
---|---|---|
committer | Bart De Schuymer <bdschuym@pandora.be> | 2005-10-24 18:18:37 +0000 |
commit | c267487e48d9c1527a8f0bac90d2f0327f80bf3e (patch) | |
tree | 8104698d8eeb4264b1b61359666c17387d188d4a /userspace | |
parent | 8586563c4c21b4966ed05894a4dfdf86161428cf (diff) |
fix -D
Diffstat (limited to 'userspace')
-rw-r--r-- | userspace/ebtables2/libebtc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/userspace/ebtables2/libebtc.c b/userspace/ebtables2/libebtc.c index b558c9c..f4a0dd3 100644 --- a/userspace/ebtables2/libebtc.c +++ b/userspace/ebtables2/libebtc.c @@ -695,7 +695,7 @@ void ebt_delete_rule(struct ebt_u_replace *replace, struct ebt_u_entry *new_entry, int begin, int end) { int i, nr_deletes; - struct ebt_u_entry *u_e, *u_e2; + struct ebt_u_entry *u_e, *u_e2, *u_e3; struct ebt_u_entries *entries = ebt_to_chain(replace); if (check_and_change_rule_number(replace, new_entry, &begin, &end)) @@ -708,6 +708,7 @@ void ebt_delete_rule(struct ebt_u_replace *replace, u_e = entries->entries->next; for (i = 0; i < begin; i++) u_e = u_e->next; + u_e3 = u_e->prev; /* Remove the rules */ for (i = 0; i < nr_deletes; i++) { u_e2 = u_e; @@ -717,6 +718,8 @@ void ebt_delete_rule(struct ebt_u_replace *replace, ebt_free_u_entry(u_e2); free(u_e2); } + u_e3->next = u_e; + u_e->prev = u_e3; /* Update the counter_offset of chains behind this one */ for (i = replace->selected_chain+1; i < replace->num_chains; i++) { if (!(entries = replace->chains[i])) |