diff --git a/tools/generate-sbom.py b/tools/generate-sbom.py index eae7945588..9583395a7b 100755 --- a/tools/generate-sbom.py +++ b/tools/generate-sbom.py @@ -87,6 +87,7 @@ ISSUE_NO_METADATA = 'No metadata generated in Make for installed files:' ISSUE_NO_METADATA_FILE = 'No METADATA file found for installed file:' ISSUE_METADATA_FILE_INCOMPLETE = 'METADATA file incomplete:' ISSUE_UNKNOWN_SECURITY_TAG_TYPE = 'Unknown security tag type:' +ISSUE_INSTALLED_FILE_NOT_EXIST = 'Non-exist installed files:' INFO_METADATA_FOUND_FOR_PACKAGE = 'METADATA file found for packages:' @@ -597,11 +598,12 @@ def main(): # Report on some issues and information report = { - ISSUE_NO_METADATA: [], - ISSUE_NO_METADATA_FILE: [], - ISSUE_METADATA_FILE_INCOMPLETE: [], - ISSUE_UNKNOWN_SECURITY_TAG_TYPE: [], - INFO_METADATA_FOUND_FOR_PACKAGE: [] + ISSUE_NO_METADATA: [], + ISSUE_NO_METADATA_FILE: [], + ISSUE_METADATA_FILE_INCOMPLETE: [], + ISSUE_UNKNOWN_SECURITY_TAG_TYPE: [], + ISSUE_INSTALLED_FILE_NOT_EXIST: [], + INFO_METADATA_FOUND_FOR_PACKAGE: [], } # Scan the metadata in CSV file and create the corresponding package and file records in SPDX @@ -619,6 +621,10 @@ def main(): if not installed_file_has_metadata(installed_file_metadata, report): continue + file_path = args.product_out_dir + '/' + installed_file + if not (os.path.islink(file_path) or os.path.isfile(file_path)): + report[ISSUE_INSTALLED_FILE_NOT_EXIST].append(installed_file) + continue file_id = new_file_id(installed_file) product_files.append(new_file_record(file_id, installed_file, checksum(installed_file)))