ids-functions.pl: Extract rules files if they are in a providers rules folder.

Message ID 20230307123809.8181-1-stefan.schantl@ipfire.org
State Accepted
Commit c35974f87dbdd91ffe70f03a07217308545447d7
Headers
Series ids-functions.pl: Extract rules files if they are in a providers rules folder. |

Commit Message

Stefan Schantl March 7, 2023, 12:38 p.m. UTC
  Now the rules files in a subfolder like "<provider>-rules" also will get
extracted.

Fixes rule file extraction for Snort Community ruleset.

Fixes #12948.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 config/cfgroot/ids-functions.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Adolf Belka March 7, 2023, 7:02 p.m. UTC | #1
Reviewed-by: Adolf Belka <adolf.belka@ipfire.org>

On 07/03/2023 13:38, Stefan Schantl wrote:
> Now the rules files in a subfolder like "<provider>-rules" also will get
> extracted.
>
> Fixes rule file extraction for Snort Community ruleset.
>
> Fixes #12948.
>
> Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
> ---
> config/cfgroot/ids-functions.pl | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/config/cfgroot/ids-functions.pl 
> b/config/cfgroot/ids-functions.pl
> index ec4fdacc5..d97431b4a 100644
> --- a/config/cfgroot/ids-functions.pl
> +++ b/config/cfgroot/ids-functions.pl
> @@ -572,7 +572,7 @@ sub extractruleset ($) {
> # Handle rules files.
> } elsif ($file =~ m/\.rules$/) {
> # Skip rule files which are not located in the rules directory or 
> archive root.
> - next unless(($packed_file =~ /^rules\//) || ($packed_file !~ /\//));
> + next unless(($packed_file =~ /^rules\//) || ($packed_file =~ 
> /^$provider-rules\//) || ($packed_file !~ /\//));
> # Skip deleted.rules.
> #
  

Patch

diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl
index ec4fdacc5..d97431b4a 100644
--- a/config/cfgroot/ids-functions.pl
+++ b/config/cfgroot/ids-functions.pl
@@ -572,7 +572,7 @@  sub extractruleset ($) {
 			# Handle rules files.
 			} elsif ($file =~ m/\.rules$/) {
 				# Skip rule files which are not located in the rules directory or archive root.
-				next unless(($packed_file =~ /^rules\//) || ($packed_file !~ /\//));
+				next unless(($packed_file =~ /^rules\//) || ($packed_file =~ /^$provider-rules\//) || ($packed_file !~ /\//));
 
 				# Skip deleted.rules.
 				#