]> git.ipfire.org Git - thirdparty/suricata-update.git/commitdiff
Parse rule files alphabetically
authorVidushi Agrawal <vidushi229@gmail.com>
Sun, 5 May 2019 18:33:34 +0000 (00:03 +0530)
committerShivani Bhardwaj <shivanib134@gmail.com>
Sun, 4 Aug 2019 06:27:54 +0000 (11:57 +0530)
Sort the file names before parsing them.
Example:
Currently,
```
suricata-update -v
```
generates
```
24/3/2019 -- 10:38:16 - <Debug> -- Parsing rules/emerging-chat.rules.
24/3/2019 -- 10:38:16 - <Debug> -- Parsing sslblacklist.rules.
24/3/2019 -- 10:38:16 - <Debug> -- Parsing rules/emerging-web_client.rules.
24/3/2019 -- 10:38:16 - <Debug> -- Parsing rules/botcc.portgrouped.rules.
24/3/2019 -- 10:38:16 - <Debug> -- Parsing rules/emerging-smtp.rules.
```
i.e., the rule files are not parsed in alphabetical order.

Thus, changing the parser to load these files in alphabetical order by sorting the filenames before starting to work on them fixes the issue. Now the output generated on running
```
suricata-update -v
```
is
```
24/3/2019 -- 10:34:24 - <Debug> -- Parsing rules/botcc.rules.
24/3/2019 -- 10:34:24 - <Debug> -- Parsing rules/ciarmy.rules.
24/3/2019 -- 10:34:24 - <Debug> -- Parsing rules/compromised.rules.
24/3/2019 -- 10:34:24 - <Debug> -- Parsing rules/drop.rules.
24/3/2019 -- 10:34:24 - <Debug> -- Parsing rules/dshield.rules.
24/3/2019 -- 10:34:24 - <Debug> -- Parsing rules/emerging-activex.rules.
```
Rules files are now parsed in sorted order.

Closes Redmine ticket #2892

suricata/update/main.py

index ea96156654712e2d1c7ed78f44b09d61c65686c6..c6218ed1dadfb75a057144da367609f962ec2abd 100644 (file)
@@ -1321,7 +1321,7 @@ def _main():
             del(files[filename])
 
     rules = []
-    for filename in files:
+    for filename in sorted(files):
         if not filename.endswith(".rules"):
             continue
         logger.debug("Parsing %s." % (filename))