From 7dd9db776b4b57908d0f2748e82f420f97405831 Mon Sep 17 00:00:00 2001 From: Steve Beaver Date: Wed, 21 Sep 2016 12:08:23 -0400 Subject: Fixed #6801 (cherry picked from commit 00098bc80b6f85eb74f2f3bc2b4eb7430614110d) --- src/usr/local/www/firewall_rules.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/usr/local/www/firewall_rules.php b/src/usr/local/www/firewall_rules.php index bc2d5ae..dfc49ef 100644 --- a/src/usr/local/www/firewall_rules.php +++ b/src/usr/local/www/firewall_rules.php @@ -253,6 +253,7 @@ if (isset($_POST['del_x'])) { if (is_array($_POST['rule']) && count($_POST['rule'])) { $a_separators = &$config['filter']['separator'][strtolower($if)]; + $num_deleted = 0; foreach ($_POST['rule'] as $rulei) { delete_nat_association($a_filter[$rulei]['associated-rule-id']); @@ -260,9 +261,11 @@ if (isset($_POST['del_x'])) { $deleted = true; // Update the separators - $ridx = ifridx($if, $rulei); // get rule index within interface + // As rules are deleted, $ridx has to be decremented or separator position will break + $ridx = ifridx($if, $rulei) - $num_deleted; // get rule index within interface $mvnrows = -1; move_separators($a_separators, $ridx, $mvnrows); + $num_deleted++; } if ($deleted) { -- cgit v1.1