From 48c3200a5a20b797cedfa82f27552d3e0f343c12 Mon Sep 17 00:00:00 2001 From: Tom Eastep Date: Tue, 28 Sep 2010 11:22:47 -0700 Subject: [PATCH] Issue error message when required file is missing or has zero size. Signed-off-by: Tom Eastep --- Shorewall/Perl/Shorewall/Policy.pm | 13 +++++++------ Shorewall/Perl/Shorewall/Zones.pm | 30 ++++++++++++++---------------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/Shorewall/Perl/Shorewall/Policy.pm b/Shorewall/Perl/Shorewall/Policy.pm index e0fcbe148..f7ef02667 100644 --- a/Shorewall/Perl/Shorewall/Policy.pm +++ b/Shorewall/Perl/Shorewall/Policy.pm @@ -34,7 +34,7 @@ use strict; our @ISA = qw(Exporter); our @EXPORT = qw( validate_policy apply_policy_rules complete_standard_chain setup_syn_flood_chains save_policies optimize_policy_chains); our @EXPORT_OK = qw( ); -our $VERSION = '4.4_12'; +our $VERSION = '4.4_14'; # @policy_chains is a list of references to policy chains in the filter table @@ -345,11 +345,12 @@ sub validate_policy() } } - my $fn = open_file 'policy'; - - first_entry "$doing $fn..."; - - process_a_policy while read_a_line; + if ( my $fn = open_file 'policy' ) { + first_entry "$doing $fn..."; + process_a_policy while read_a_line; + } else { + fatal_error q(The 'policy' file does not exist or has zero size); + } for $zone ( all_zones ) { for my $zone1 ( all_zones ) { diff --git a/Shorewall/Perl/Shorewall/Zones.pm b/Shorewall/Perl/Shorewall/Zones.pm index 3a9092ace..dac49a7ff 100644 --- a/Shorewall/Perl/Shorewall/Zones.pm +++ b/Shorewall/Perl/Shorewall/Zones.pm @@ -481,11 +481,12 @@ sub determine_zones() my @z; my $ip = 0; - my $fn = open_file 'zones'; - - first_entry "$doing $fn..."; - - push @z, process_zone( $ip ) while read_a_line; + if ( my $fn = open_file 'zones' ) { + first_entry "$doing $fn..."; + push @z, process_zone( $ip ) while read_a_line; + } else { + fatal_error q(The 'zones' file does not exist or has zero size); + } fatal_error "No firewall zone defined" unless $firewall_zone; fatal_error "No IP zones defined" unless $ip; @@ -1109,15 +1110,14 @@ sub process_interface( $$ ) { sub validate_interfaces_file( $ ) { my $export = shift; - my $fn = open_file 'interfaces'; - - my @ifaces; - - my $nextinum = 1; - - first_entry "$doing $fn..."; - - push @ifaces, process_interface( $nextinum++, $export ) while read_a_line; + if ( my $fn = open_file 'interfaces' ) { + my @ifaces; + my $nextinum = 1; + first_entry "$doing $fn..."; + push @ifaces, process_interface( $nextinum++, $export ) while read_a_line; + } else { + fatal_error q(The 'interfaces' file does not exist or has zero size); + } # # We now assemble the @interfaces array such that bridge ports immediately precede their associated bridge @@ -1775,9 +1775,7 @@ sub validate_hosts_file() my $ipsec = 0; if ( my $fn = open_file 'hosts' ) { - first_entry "$doing $fn..."; - $ipsec |= process_host while read_a_line; }