diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index 2c789c5bf..3522c8c8a 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -7491,7 +7491,7 @@ sub expand_rule( $$$$$$$$$$$$;$ ) $loglevel = validate_level( $loglevel ); $logtag = '' unless defined $logtag; } - } elsif ( $disposition eq 'LOG' ) { + } elsif ( $disposition eq 'LOG' && ! $usergenerated ) { fatal_error "LOG requires a level"; } # diff --git a/Shorewall/Perl/Shorewall/Config.pm b/Shorewall/Perl/Shorewall/Config.pm index 186215327..0ddd19910 100644 --- a/Shorewall/Perl/Shorewall/Config.pm +++ b/Shorewall/Perl/Shorewall/Config.pm @@ -2212,7 +2212,10 @@ sub split_line2( $$;$$$ ) { $pairs = ''; } - fatal_error "Shorewall Configuration file entries may not contain double quotes, single back quotes or backslashes" if $columns =~ /["`\\]/; + unless ( $currline =~ /^\s*IP6?TABLES\(.*\)/ ) { + fatal_error "Shorewall Configuration file entries may not contain double quotes, single back quotes or backslashes" if $columns =~ /["`\\]/; + } + fatal_error "Non-ASCII gunk in file" if $columns =~ /[^\s[:print:]]/; my @line = split_columns( $columns );