From: Stefan Schantl Date: Fri, 12 Oct 2018 13:43:16 +0000 (+0200) Subject: ids-functions.pl: Rework &_cleanup_rulesdir() function X-Git-Tag: v2.23-core131~117^2~132 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8cf04a165696c512c8c2cb1f3d282c1f0cc88787;p=ipfire-2.x.git ids-functions.pl: Rework &_cleanup_rulesdir() function * Use a directory listing and delete the files. * Keep files with "config" as file extension. Signed-off-by: Stefan Schantl --- diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl index 16232cc919..684566731f 100644 --- a/config/cfgroot/ids-functions.pl +++ b/config/cfgroot/ids-functions.pl @@ -451,14 +451,20 @@ sub _check_rulesdir_permissions() { ## the IDS rules, before extracting and modifing the new ruleset. # sub _cleanup_rulesdir() { - # Loop through the rules-directory. - while ($item = glob($rulespath/*)) { - # Skip element if it is a directory. - next if -d $item; + # Open rules directory and do a directory listing. + opendir(DIR, $rulespath) or die $!; + + # Loop through the direcory. + while (my $file = readdir(DIR)) { + # We only want files. + next unless (-f "$rulespath/$file"); + + # Skip element if it has config as file extension. + next if ($file =~ m/\.config$/); - # Delete the current processed item, if not, exit this function + # Delete the current processed file, if not, exit this function # and return an error message. - unlink($item) or return "Could not delete $item. $!\n"; + unlink($rulespath/$file) or return "Could not delete $rulespath/$file. $!\n"; } # Return nothing;