From fbdd4b5ede96b56ff22394f333c0212dfccd7365 Mon Sep 17 00:00:00 2001 From: Tom Eastep Date: Mon, 31 Jan 2011 06:56:38 -0800 Subject: [PATCH] Ensure that accounting and manual chains aren't too long --- Shorewall/Perl/Shorewall/Chains.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index 31aa50f36..34da31c82 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -1261,6 +1261,7 @@ sub ensure_accounting_chain( $$ ) if ( $chainref ) { 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; $chainref = new_chain 'filter' , $chain; $chainref->{accounting} = 1; $chainref->{referenced} = 1; @@ -1348,6 +1349,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 "Duplicate Chain Name ($chain)" if $targets{$chain} || $filter_table->{$chain}; $targets{$chain} = CHAIN; ( my $chainref = ensure_filter_chain( $chain, 0) )->{manual} = 1;