BUG12479: Copied NAT rule in Firewall displays incorrect source Port

Message ID 20210319173219.13692-1-alexander.marx@ipfire.org
State Accepted
Commit 284bf12c58d055e251c94bf02e1790e53927162e
Headers show
Series
  • BUG12479: Copied NAT rule in Firewall displays incorrect source Port
Related show

Commit Message

Alexander Marx March 19, 2021, 5:32 p.m. UTC
Fixes: #12479

When copying a NAT rule in the firewall the existing sourceport is copied, too.
This Fix deletes the sourceport from a copied NAT rule. After Saving, the correct port is used.

Signed-off-by: Alexander Marx <alexander.marx@ipfire.org>
---
 html/cgi-bin/firewall.cgi | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Michael Tremer March 22, 2021, 2:11 p.m. UTC | #1
Hello,

Why did this need changing?

If I want to copy a rule, do I not want to copy it exactly the same way?

-Michael

> On 19 Mar 2021, at 17:32, Alexander Marx <alexander.marx@ipfire.org> wrote:
> 
> Fixes: #12479
> 
> When copying a NAT rule in the firewall the existing sourceport is copied, too.
> This Fix deletes the sourceport from a copied NAT rule. After Saving, the correct port is used.
> 
> Signed-off-by: Alexander Marx <alexander.marx@ipfire.org>
> ---
> html/cgi-bin/firewall.cgi | 5 +++++
> 1 file changed, 5 insertions(+)
> 
> diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi
> index 1483e779f..532f99f91 100644
> --- a/html/cgi-bin/firewall.cgi
> +++ b/html/cgi-bin/firewall.cgi
> @@ -1552,6 +1552,11 @@ sub newrule
> 				$fwdfwsettings{'USE_NAT'}				= $hash{$key}[28];
> 				$fwdfwsettings{'nat'}					= $hash{$key}[31]; #changed order
> 				$fwdfwsettings{$fwdfwsettings{'nat'}}	= $hash{$key}[29];
> +				#Fix BUG 12479
> +				#When copying a DNAT Rule, the sourceport has to be empty at this point.
> +				if($hash{$key}[14] eq 'cust_srv' and $hash{$key}[31] eq 'dnat'){
> +					$hash{$key}[30] = '';
> +				}
> 				$fwdfwsettings{'dnatport'}				= $hash{$key}[30];
> 				$fwdfwsettings{'LIMIT_CON_CON'}			= $hash{$key}[32];
> 				$fwdfwsettings{'concon'}				= $hash{$key}[33];
> -- 
> 2.25.1
>

Patch

diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi
index 1483e779f..532f99f91 100644
--- a/html/cgi-bin/firewall.cgi
+++ b/html/cgi-bin/firewall.cgi
@@ -1552,6 +1552,11 @@  sub newrule
 				$fwdfwsettings{'USE_NAT'}				= $hash{$key}[28];
 				$fwdfwsettings{'nat'}					= $hash{$key}[31]; #changed order
 				$fwdfwsettings{$fwdfwsettings{'nat'}}	= $hash{$key}[29];
+				#Fix BUG 12479
+				#When copying a DNAT Rule, the sourceport has to be empty at this point.
+				if($hash{$key}[14] eq 'cust_srv' and $hash{$key}[31] eq 'dnat'){
+					$hash{$key}[30] = '';
+				}
 				$fwdfwsettings{'dnatport'}				= $hash{$key}[30];
 				$fwdfwsettings{'LIMIT_CON_CON'}			= $hash{$key}[32];
 				$fwdfwsettings{'concon'}				= $hash{$key}[33];