diff -ur shorewall-5.2.0.5.orig/shorewall-5.2.0.5/Perl/Shorewall/Chains.pm shorewall-5.2.0.5/shorewall-5.2.0.5/Perl/Shorewall/Chains.pm --- shorewall-5.2.0.5.orig/shorewall-5.2.0.5/Perl/Shorewall/Chains.pm 2018-08-05 17:31:09.000000000 +0000 +++ shorewall-5.2.0.5/shorewall-5.2.0.5/Perl/Shorewall/Chains.pm 2018-09-06 15:14:31.187972699 +0000 @@ -5819,7 +5819,7 @@ $chain =~ s/[^\w-]//g; # $1 $2 - $3 - while ( $condition =~ m( ^(.*?) @({)?(?:0|chain)(?(2)}) (.*)$ )x ) { + while ( $condition =~ m( ^(.*?) @(\{)?(?:0|chain)(?(2)}) (.*)$ )x ) { $condition = join( '', $1, $chain, $3 ); } diff -ur shorewall-5.2.0.5.orig/shorewall-5.2.0.5/Perl/Shorewall/Config.pm shorewall-5.2.0.5/shorewall-5.2.0.5/Perl/Shorewall/Config.pm --- shorewall-5.2.0.5.orig/shorewall-5.2.0.5/Perl/Shorewall/Config.pm 2018-08-05 17:31:09.000000000 +0000 +++ shorewall-5.2.0.5/shorewall-5.2.0.5/Perl/Shorewall/Config.pm 2018-09-06 15:14:25.806972759 +0000 @@ -2833,7 +2833,7 @@ } # $1 $2 $3 - $4 - while ( $expression =~ m( ^(.*?) \$({)? (\d+|[a-zA-Z_]\w*) (?(2)}) (.*)$ )x ) { + while ( $expression =~ m( ^(.*?) \$(\{)? (\d+|[a-zA-Z_]\w*) (?(2)}) (.*)$ )x ) { my ( $first, $var, $rest ) = ( $1, $3, $4); if ( $var =~ /^\d+$/ ) { @@ -2850,7 +2850,7 @@ if ( $chain ) { # $1 $2 $3 - $4 - while ( $expression =~ m( ^(.*?) \@({)? (\d+|[a-zA-Z]\w*) (?(2)}) (.*)$ )x ) { + while ( $expression =~ m( ^(.*?) \@(\{)? (\d+|[a-zA-Z]\w*) (?(2)}) (.*)$ )x ) { my ( $first, $var, $rest ) = ( $1, $3, $4); $var = numeric_value( $var ) if $var =~ /^\d/; $val = $var ? $actparams{$var} : $chain; @@ -2861,7 +2861,7 @@ } # $1 $2 $3 - $4 - while ( $expression =~ m( ^(.*?) __({)? (\w+) (?(2)}) (.*)$ )x ) { + while ( $expression =~ m( ^(.*?) __(\{)? (\w+) (?(2)}) (.*)$ )x ) { my ( $first, $cap, $rest ) = ( $1, $3, $4); if ( exists $capdesc{$cap} ) { @@ -3791,7 +3791,7 @@ my ( $lineref, $count ) = ( $_[0], 0 ); my $chain = $actparams{chain}; # $1 $2 $3 - $4 - while ( $$lineref =~ m( ^(.*?) \$({)? (\d+|[a-zA-Z_]\w*) (?(2)}) (.*)$ )x ) { + while ( $$lineref =~ m( ^(.*?) \$(\{)? (\d+|[a-zA-Z_]\w*) (?(2)}) (.*)$ )x ) { my ( $first, $var, $rest ) = ( $1, $3, $4); @@ -3830,7 +3830,7 @@ # $$lineref =~ s/\\@/??/g; # $1 $2 $3 - $4 - while ( $$lineref =~ m( ^(.*?) \@({)? (\d+|[a-zA-Z_]\w*) (?(2)}) (.*)$ )x ) { + while ( $$lineref =~ m( ^(.*?) \@(\{)? (\d+|[a-zA-Z_]\w*) (?(2)}) (.*)$ )x ) { my ( $first, $var, $rest ) = ( $1, $3, $4); my $val = $var ? $actparams{$var} : $actparams{chain}; $usedcaller = USEDCALLER if $var eq 'caller'; @@ -3846,7 +3846,7 @@ sub expand_shorewallrc_variables( \$ ) { my ( $lineref, $count ) = ( $_[0], 0 ); # $1 $2 $3 - $4 - while ( $$lineref =~ m( ^(.*?) \$({)? (\d+|[a-zA-Z]\w*) (?(2)}) (.*)$ )x ) { + while ( $$lineref =~ m( ^(.*?) \$(\{)? (\d+|[a-zA-Z]\w*) (?(2)}) (.*)$ )x ) { my ( $first, $var, $rest ) = ( $1, $3, $4);