support/scripts/cve.py: don't call download_nvd

This patch move the 'download_nvd' call to the 'pkg-stats' script
instead of automatically calling 'read_nvd_dir'.

Since the cve.py file can be used as a library it's up to the caller to
decide whether or not to update the NVD database.

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Thomas Perale
2025-11-19 22:34:17 +01:00
committed by Peter Korsgaard
parent 903c0db86e
commit 867017e736
2 changed files with 6 additions and 2 deletions

View File

@@ -144,7 +144,9 @@ class CVE:
self.nvd_cve = nvd_cve
@staticmethod
def download_nvd(nvd_git_dir):
def download_nvd(nvd_dir):
nvd_git_dir = os.path.join(nvd_dir, "git")
if os.path.exists(nvd_git_dir):
subprocess.check_call(
["git", "pull"],
@@ -177,7 +179,7 @@ class CVE:
nvd_dir, a fresh copy will be downloaded, and kept in .json.gz
"""
nvd_git_dir = os.path.join(nvd_dir, "git")
CVE.download_nvd(nvd_git_dir)
for year in range(NVD_START_YEAR, datetime.datetime.now().year + 1):
for dirpath, _, filenames in os.walk(os.path.join(nvd_git_dir, f"CVE-{year}")):
for filename in filenames:

View File

@@ -676,6 +676,8 @@ def check_package_cves(nvd_path, packages):
cpe_product_pkgs[pkg.name].append(pkg)
print(f"Updating NVD database in '{nvd_path}'")
cvecheck.CVE.download_nvd(nvd_path)
for cve in cvecheck.CVE.read_nvd_dir(nvd_path):
check_package_cve_affects(cve, cpe_product_pkgs)