From 7e381f5c0fc20221a87d6a163895eccdc5641d63 Mon Sep 17 00:00:00 2001 From: kleomartiny <160830156+kleomartiny@users.noreply.github.com> Date: Wed, 20 May 2026 13:48:05 +0300 Subject: [PATCH 1/2] Fix SARIF parser crash on empty extensions Handle empty or missing tool.extensions in SARIF parser. --- dojo/tools/sarif/parser.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dojo/tools/sarif/parser.py b/dojo/tools/sarif/parser.py index d554e1d51e3..200349e25f6 100644 --- a/dojo/tools/sarif/parser.py +++ b/dojo/tools/sarif/parser.py @@ -384,11 +384,12 @@ def customize_finding(self, finding, result, rule, location): def get_rules(run): rules = {} - rules_array = run["tool"]["driver"].get("rules", []) - if len(rules_array) == 0 and run["tool"].get("extensions") is not None: - rules_array = run["tool"]["extensions"][0].get("rules", []) + rules_array = run['tool']['driver'].get('rules', []) + if not rules_array: + for extension in run['tool'].get('extensions', []): + rules_array.extend(extension.get('rules', [])) for item in rules_array: - rules[item["id"]] = item + rules[item['id']] = item return rules From e835f165b41c9414165c88c0f7699df01428f521 Mon Sep 17 00:00:00 2001 From: kleomartiny <160830156+kleomartiny@users.noreply.github.com> Date: Thu, 21 May 2026 00:36:31 +0300 Subject: [PATCH 2/2] Fix ruff linting quotes --- dojo/tools/sarif/parser.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dojo/tools/sarif/parser.py b/dojo/tools/sarif/parser.py index 200349e25f6..cd7107d5352 100644 --- a/dojo/tools/sarif/parser.py +++ b/dojo/tools/sarif/parser.py @@ -384,12 +384,12 @@ def customize_finding(self, finding, result, rule, location): def get_rules(run): rules = {} - rules_array = run['tool']['driver'].get('rules', []) + rules_array = run["tool"]["driver"].get("rules", []) if not rules_array: - for extension in run['tool'].get('extensions', []): - rules_array.extend(extension.get('rules', [])) + for extension in run["tool"].get("extensions", []): + rules_array.extend(extension.get("rules", [])) for item in rules_array: - rules[item['id']] = item + rules[item["id"]] = item return rules