From 8cf04a165696c512c8c2cb1f3d282c1f0cc88787 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Fri, 12 Oct 2018 15:43:16 +0200 Subject: [PATCH] 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 --- config/cfgroot/ids-functions.pl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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; -- 2.39.2