]> git.ipfire.org Git - people/stevee/ipfire-2.x.git/commitdiff
guardian.cgi: Fix and improve input validation.
authorStefan Schantl <stefan.schantl@ipfire.org>
Mon, 27 Oct 2014 19:16:42 +0000 (20:16 +0100)
committerStefan Schantl <stefan.schantl@ipfire.org>
Fri, 29 Jul 2016 11:17:55 +0000 (13:17 +0200)
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
html/cgi-bin/guardian.cgi

index aacdfca990869cb25259c7cf9f7b0733215b787d..e65f4c7d0546ca134cfff244442633e3ab7863c5 100644 (file)
@@ -80,27 +80,27 @@ my $pid = @pid[0];
 #
 if ($settings{'ACTION'} eq $Lang::tr{'save'}) {
        # Check for valid blocktime.
-       if (! $settings{'GUARDIAN_BLOCKTIME'} =~ /^\d+$/) {
+       unless(($settings{'GUARDIAN_BLOCKTIME'} =~ /^\d+$/) && ($settings{'GUARDIAN_BLOCKTIME'} ne "0")) {
                        $errormessage = "$Lang::tr{'guardian invalid blocktime'}";
        }
 
        # Check if the bloccount is valid.
-       if (! $settings{'GUARDIAN_BLOCKCOUNT'} =~ /^\d+$/) {
+       unless(($settings{'GUARDIAN_BLOCKCOUNT'} =~ /^\d+$/) && ($settings{'GUARDIAN_BLOCKCOUNT'} ne "0")) {
                        $errormessage = "$Lang::tr{'guardian invalid blockcount'}";
        }
 
        # Check Logfile.
-       if (! $settings{'GUARDIAN_LOGFILE'} =~ /^[a-zA-Z0-9\.\/]+$/) {
+       unless($settings{'GUARDIAN_LOGFILE'} =~ /^[a-zA-Z0-9\.\/]+$/) {
                $errormessage = "$Lang::tr{'guardian invalid logfile'}";
        }
 
        # Check input for snort alert file.
-       if (! $settings{'GUARDIAN_SNORT_ALERTFILE'} =~ /^[a-zA-Z0-9\.\/]+$/) {
+       unless($settings{'GUARDIAN_SNORT_ALERTFILE'} =~ /^[a-zA-Z0-9\.\/]+$/) {
                $errormessage = "$Lang::tr{'guardian invalid alertfile'}";
        }
 
        # Only continue if no error message has been set.
-       if ($errormessage eq '') {
+       if($errormessage eq '') {
                # Write configuration settings to file.
                &General::writehash("${General::swroot}/guardian/settings", \%settings);