GeoIP: Do not crash when locations database does not exist
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 22 Mar 2019 02:58:57 +0000 (02:58 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 22 Mar 2019 02:58:57 +0000 (02:58 +0000)
Fixes: #12021
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/cfgroot/geoip-functions.pl
config/rootfiles/core/130/filelists/files

index d03503a..b2319da 100644 (file)
@@ -122,10 +122,10 @@ sub get_full_country_name($) {
 
 # Function to get all available GeoIP locations.
 sub get_geoip_locations() {
-       my @locations;
+       my @locations = ();
 
        # Open the location database.
-       open(LOCATION, "$geoip_database_dir/$location_database") or die "Could not open $geoip_database_dir/$location_database. $!\n";
+       open(LOCATION, "$geoip_database_dir/$location_database") or return @locations;
 
        # Loop through the file.
        while(my $line = <LOCATION>) {
index b6ee45d..28a32a7 100644 (file)
@@ -21,6 +21,7 @@ usr/sbin/convert-snort
 var/ipfire/backup/bin/backup.pl
 var/ipfire/backup/include
 var/ipfire/general-functions.pl
+var/ipfire/geoip-functions.pl
 var/ipfire/ids-functions.pl
 var/ipfire/menu.d/40-services.menu
 var/ipfire/menu.d/50-firewall.menu