Skip to content

Commit a73a683

Browse files
committed
Add logger
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 7f74476 commit a73a683

1 file changed

Lines changed: 29 additions & 16 deletions

File tree

vulnerabilities/importers/redhat.py

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,23 @@ def to_advisory(advisory_data):
8080
for rpm in advisory_data.get("affected_packages") or []:
8181
purl = rpm_to_purl(rpm)
8282
if purl:
83-
affected_packages.append(
84-
AffectedPackage(
85-
package=PackageURL(
86-
type=purl.type,
87-
name=purl.name,
88-
namespace=purl.namespace,
89-
qualifiers=purl.qualifiers,
90-
subpath=purl.subpath,
91-
),
92-
affected_version_range=RpmVersionRange.from_native(f"= {purl.version}"),
93-
fixed_version=None,
83+
try:
84+
affected_version_range = RpmVersionRange.from_native(f"= {purl.version}")
85+
affected_packages.append(
86+
AffectedPackage(
87+
package=PackageURL(
88+
type=purl.type,
89+
name=purl.name,
90+
namespace=purl.namespace,
91+
qualifiers=purl.qualifiers,
92+
subpath=purl.subpath,
93+
),
94+
affected_version_range=affected_version_range,
95+
fixed_version=None,
96+
)
9497
)
95-
)
98+
except Exception as e:
99+
logger.error(f"Failed to parse version range {purl.version} for {purl}")
96100

97101
references = []
98102
bugzilla = advisory_data.get("bugzilla")
@@ -196,9 +200,11 @@ def __new__(self, version, release=None, epoch=None):
196200
"""
197201
if not isinstance(epoch, int):
198202
if epoch and epoch.strip():
199-
raise ValueError("Invalid epoch: must be a number or empty.")
203+
logger.error("Invalid epoch: must be a number or empty.")
204+
return None
200205
if not version:
201-
raise ValueError("Version is required: {}".format(repr(version)))
206+
logger.error("Version is required: {}".format(repr(version)))
207+
return None
202208

203209
return super().__new__(EVR, epoch, version, release)
204210

@@ -233,7 +239,8 @@ def from_name(rpm_string):
233239
if ":" not in v:
234240
return None, n, v, r, a
235241
e, v = v.split(":", 1)
236-
e = int(e)
242+
if e.isdigit():
243+
e = int(e)
237244
return (e, n, v, r, a)
238245

239246

@@ -251,9 +258,15 @@ def rpm_to_purl(rpm_string):
251258
envra = from_name(rpm_string)
252259

253260
if not envra:
261+
logger.error(f"Invalid RPM name can't get envra: {rpm_string}")
254262
return None
255263
sepoch, sname, sversion, srel, sarch = envra
256-
src_evr = EVR(sversion, srel, sepoch).to_string()
264+
265+
evr = EVR(sversion, srel, sepoch)
266+
if not evr:
267+
logger.error(f"Invalid RPM name can't get evr: {rpm_string}")
268+
return None
269+
src_evr = evr.to_string()
257270
src_qualifiers = {}
258271
if sarch:
259272
src_qualifiers["arch"] = sarch

0 commit comments

Comments
 (0)