diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index 65f9d7692..bd71b7c7f 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -1270,7 +1270,7 @@ sub ensure_accounting_chain( $$ ) fatal_error "Non-accounting chain ($chain) used in an accounting rule" unless $chainref->{accounting}; } else { fatal_error "Chain name ($chain) too long" if length $chain > 29; - fatal_error "Invalid Chain name ($chain)" unless $chain =~ /^[-\w]+$/; + fatal_error "Invalid Chain name ($chain)" if $builtin_target{$chain} || ! $chain =~ /^[-\w]+$/; $chainref = new_chain 'filter' , $chain; $chainref->{accounting} = 1; $chainref->{referenced} = 1; @@ -1359,7 +1359,7 @@ sub new_nat_chain($) { sub new_manual_chain($) { my $chain = $_[0]; fatal_error "Chain name ($chain) too long" if length $chain > 29; - fatal_error "Invalid Chain name ($chain)" unless $chain =~ /^[-\w]+$/; + fatal_error "Invalid Chain name ($chain)" if $builtin_target{$chain} || ! $chain =~ /^[-\w]+$/; fatal_error "Duplicate Chain Name ($chain)" if $targets{$chain} || $filter_table->{$chain}; $targets{$chain} = CHAIN; ( my $chainref = ensure_filter_chain( $chain, 0) )->{manual} = 1;