summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Beaver <sbeaver@netgate.com>2016-09-21 13:46:19 -0400
committerSteve Beaver <sbeaver@netgate.com>2016-09-21 13:47:03 -0400
commitc2b72200cabfd6e050973d83fe12f1158a084909 (patch)
tree3771f8bbfcbf2e345714ef920a3591f5ed0f4cfe
parent7dd9db776b4b57908d0f2748e82f420f97405831 (diff)
downloadpfsense-c2b72200cabfd6e050973d83fe12f1158a084909.zip
pfsense-c2b72200cabfd6e050973d83fe12f1158a084909.tar.gz
Apply #601 fix to firewall_nat.php
(cherry picked from commit 4b0815f38a8a0f98519ca0c2bff7c81b6464e579)
-rw-r--r--src/usr/local/www/firewall_nat.php6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/usr/local/www/firewall_nat.php b/src/usr/local/www/firewall_nat.php
index e6f139c..1ef7d34 100644
--- a/src/usr/local/www/firewall_nat.php
+++ b/src/usr/local/www/firewall_nat.php
@@ -161,6 +161,7 @@ if (isset($_POST['del_x'])) {
/* delete selected rules */
if (is_array($_POST['rule']) && count($_POST['rule'])) {
$a_separators = &$config['nat']['separator'];
+ $num_deleted = 0;
foreach ($_POST['rule'] as $rulei) {
$target = $rule['target'];
@@ -168,16 +169,17 @@ if (isset($_POST['del_x'])) {
// Check for filter rule associations
if (isset($a_nat[$rulei]['associated-rule-id'])) {
delete_id($a_nat[$rulei]['associated-rule-id'], $config['filter']['rule']);
-
mark_subsystem_dirty('filter');
}
unset($a_nat[$rulei]);
// Update the separators
- $ridx = $rulei;
+ // As rules are deleted, $ridx has to be decremented or separator position will break
+ $ridx = $rulei - $num_deleted;
$mvnrows = -1;
move_separators($a_separators, $ridx, $mvnrows);
+ $num_deleted++;
}
if (write_config()) {
OpenPOWER on IntegriCloud