Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions vulnerabilities/scraper/npm.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down