Skip to content

Commit 026150b

Browse files
committed
Catch invalid version range constraints.
Signed-off-by: ziad hany <ziadhany2016@gmail.com>
1 parent 5216f64 commit 026150b

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

vulnerabilities/pipelines/v2_importers/ruby_importer.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
from fetchcode.vcs import fetch_via_vcs
1616
from packageurl import PackageURL
1717
from pytz import UTC
18+
from univers.version_constraint import validate_comparators
1819
from univers.version_range import GemVersionRange
19-
from univers.version_range import InvalidVersionRange
2020

2121
from vulnerabilities.importer import AdvisoryData
2222
from vulnerabilities.importer import AffectedPackageV2
@@ -158,28 +158,36 @@ def get_affected_packages(record, purl):
158158
for unaffected_version in record.get("unaffected_versions", []):
159159
try:
160160
affected_version_range = GemVersionRange.from_native(unaffected_version).invert()
161+
if not validate_comparators(affected_version_range.constraints):
162+
logger.error(
163+
f"Invalid VersionRange Constraints for unaffected_version: {unaffected_version}"
164+
)
165+
continue
161166
affected_packages.append(
162167
AffectedPackageV2(
163168
package=purl,
164169
affected_version_range=affected_version_range,
165170
fixed_version_range=None,
166171
)
167172
)
168-
except InvalidVersionRange as e:
169-
logger.error(f"InvalidVersionRange {e}")
173+
except Exception as e:
174+
logger.error(f"Invalid VersionRange Constraints for unaffected_version: {e}")
170175

171176
for patched_version in record.get("patched_versions", []):
172177
try:
173178
fixed_version_range = GemVersionRange.from_native(patched_version)
179+
if not validate_comparators(fixed_version_range.constraints):
180+
continue
174181
affected_packages.append(
175182
AffectedPackageV2(
176183
package=purl,
177184
affected_version_range=None,
178185
fixed_version_range=fixed_version_range,
179186
)
180187
)
181-
except InvalidVersionRange as e:
182-
logger.error(f"InvalidVersionRange {e}")
188+
except Exception as e:
189+
logger.error(f"Invalid VersionRange Constraints for patched_versions: {e}")
190+
183191
return affected_packages
184192

185193

0 commit comments

Comments
 (0)