diff --git a/cve_bin_tool/parsers/swift.py b/cve_bin_tool/parsers/swift.py index bbe6d6b2e9..ebfbe8eb35 100644 --- a/cve_bin_tool/parsers/swift.py +++ b/cve_bin_tool/parsers/swift.py @@ -63,10 +63,22 @@ def run_checker(self, filename): except JSONDecodeError as e: self.logger.debug(f"Error occurred while parsing {filename}: {e}") return - for package in content["object"]["pins"]: - product = package["package"] + + # Check the schema version + if content["version"] == 1: + pins_object = content["object"] + pins = pins_object["pins"] + package_key = "package" + repo_key = "repositoryURL" + else: + pins = content["pins"] + package_key = "identity" + repo_key = "location" + + for package in pins: + product = package[package_key] version = package["state"]["version"] - repository_url = package.get("repositoryURL", None) + repository_url = package.get(repo_key, None) domain = None if repository_url: parse = urlparse(repository_url)