Skip to content

Commit 6920c57

Browse files
committed
Fix sbom purl matching for rpms (again)
This is the same bug already fixed in PR #1457 but in a different place. The impact here is the rego doesn't see any of the rpms in the SPDX SBOM, so it potentially doesn't produce rpm related violations that it should produce. Found this while working on... Ref: https://issues.redhat.com/browse/EC-1354
1 parent 1e3246a commit 6920c57

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

policy/lib/sbom/rpm.rego

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ rpms_from_sbom(s) := entities if {
2525
some pkg in s.packages
2626
some ref in pkg.externalRefs
2727
ref.referenceType == "purl"
28-
ref.referenceCategory == "PACKAGE-MANAGER"
28+
ref.referenceCategory in {"PACKAGE_MANAGER", "PACKAGE-MANAGER"}
2929
purl := ref.referenceLocator
3030
_is_rpmish(purl)
3131
entity := {

policy/lib/sbom/rpm_test.rego

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ _spdx_package(purl, annotations) := {
103103
"annotations": annotations,
104104
"externalRefs": [{
105105
"referenceType": "purl",
106-
"referenceCategory": "PACKAGE-MANAGER",
106+
"referenceCategory": "PACKAGE_MANAGER",
107107
"referenceLocator": purl,
108108
}],
109109
}

policy/release/pre_build_script_task/pre_build_script_task.rego

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ _purls_from_sbom(s) := purls if {
152152
some pkg in s.packages
153153
some ref in pkg.externalRefs
154154
ref.referenceType == "purl"
155-
ref.referenceCategory in {"PACKAGE-MANAGER", "PACKAGE_MANAGER"}
155+
ref.referenceCategory in {"PACKAGE_MANAGER", "PACKAGE-MANAGER"}
156156
}
157157
count(purls) > 0
158158
}

policy/release/rpm_packages/rpm_packages_test.rego

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,16 +120,17 @@ _mock_blob(`"registry.local/cyclonedx-2@sha256:cyclonedx-2-digest"`) := json.mar
120120
_mock_blob(`"registry.local/spdx-1@sha256:spdx-1-digest"`) := json.marshal({"packages": [
121121
{"externalRefs": [{
122122
"referenceType": "purl",
123-
"referenceCategory": "PACKAGE-MANAGER",
123+
"referenceCategory": "PACKAGE_MANAGER",
124124
"referenceLocator": "pkg:rpm/redhat/spam@1.0.0-1",
125125
}]},
126126
{"externalRefs": [{
127127
"referenceType": "purl",
128-
"referenceCategory": "PACKAGE-MANAGER",
128+
"referenceCategory": "PACKAGE_MANAGER",
129129
"referenceLocator": "pkg:rpm/redhat/bacon@1.0.0-2",
130130
}]},
131131
{"externalRefs": [{
132132
"referenceType": "purl",
133+
# Intentionally different since we match both PACKAGE_MANAGER and PACKAGE-MANAGER
133134
"referenceCategory": "PACKAGE-MANAGER",
134135
"referenceLocator": "pkg:rpm/redhat/ham@4.2.0-0",
135136
}]},
@@ -138,16 +139,17 @@ _mock_blob(`"registry.local/spdx-1@sha256:spdx-1-digest"`) := json.marshal({"pac
138139
_mock_blob(`"registry.local/spdx-2@sha256:spdx-2-digest"`) := json.marshal({"packages": [
139140
{"externalRefs": [{
140141
"referenceType": "purl",
141-
"referenceCategory": "PACKAGE-MANAGER",
142+
"referenceCategory": "PACKAGE_MANAGER",
142143
"referenceLocator": "pkg:rpm/redhat/spam@1.0.0-2",
143144
}]},
144145
{"externalRefs": [{
145146
"referenceType": "purl",
146-
"referenceCategory": "PACKAGE-MANAGER",
147+
"referenceCategory": "PACKAGE_MANAGER",
147148
"referenceLocator": "pkg:rpm/redhat/bacon@1.0.0-2",
148149
}]},
149150
{"externalRefs": [{
150151
"referenceType": "purl",
152+
# Intentionally different since we match both PACKAGE_MANAGER and PACKAGE-MANAGER
151153
"referenceCategory": "PACKAGE-MANAGER",
152154
"referenceLocator": "pkg:rpm/redhat/eggs@4.2.0-0",
153155
}]},

0 commit comments

Comments
 (0)