From 7cd63fa042e2c5e588f947676449c86625b63c0c Mon Sep 17 00:00:00 2001 From: sbs2001 Date: Sat, 21 Dec 2019 18:56:49 +0530 Subject: [PATCH] Fix npm.py bug Signed-off-by: sbs2001 --- vulnerabilities/scraper/npm.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/vulnerabilities/scraper/npm.py b/vulnerabilities/scraper/npm.py index f6196e50c..bb5201811 100644 --- a/vulnerabilities/scraper/npm.py +++ b/vulnerabilities/scraper/npm.py @@ -58,25 +58,22 @@ def get_all_versions(package_name): def extract_versions(package_name, aff_version_range, fixed_version_range): """ - Seperate list of affected versions and fixed versions from all versions - using the ranges specified + Seperate list of affected versions and unaffected versions from all versions + using the ranges specified. """ - # FIXME This skips unfixed vulnerabilities - if aff_version_range == '' or fixed_version_range == '': - return ([], []) - aff_spec = semantic_version.NpmSpec(remove_spaces(aff_version_range)) fix_spec = semantic_version.NpmSpec(remove_spaces(fixed_version_range)) all_ver = get_all_versions(package_name) aff_ver = [] fix_ver = [] + # Unaffected version is that version which is in the fixed_version_range + # or which is absent in the aff_version_range for ver in all_ver: cur_version = semantic_version.Version(ver) - if cur_version in aff_spec: - aff_ver.append(ver) + if cur_version in fix_spec or cur_version not in aff_spec: + fix_ver.append(ver) else: - if cur_version in fix_spec: - fix_ver.append(ver) + aff_ver.append(ver) return (aff_ver, fix_ver)