Add detection for newer version of ErLang/OTP (#2829)

Signed-off-by: Laurent Goderre <laurent.goderre@docker.com>
This commit is contained in:
Laurent Goderre 2024-05-06 11:47:54 -04:00 committed by GitHub
parent a56eff90d6
commit e353214ef8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 44 additions and 6 deletions

View File

@ -843,7 +843,7 @@ func Test_Cataloger_PositiveCases(t *testing.T) {
}, },
}, },
{ {
logicalFixture: "erlexec/25.3.2.6/linux-amd64", logicalFixture: "erlang/25.3.2.6/linux-amd64",
expected: pkg.Package{ expected: pkg.Package{
Name: "erlang", Name: "erlang",
Version: "25.3.2.6", Version: "25.3.2.6",
@ -854,7 +854,7 @@ func Test_Cataloger_PositiveCases(t *testing.T) {
}, },
}, },
{ {
logicalFixture: "erlexec/26.2.0.0/linux-amd64", logicalFixture: "erlang/26.2.0.0/linux-amd64",
expected: pkg.Package{ expected: pkg.Package{
Name: "erlang", Name: "erlang",
Version: "26.2", Version: "26.2",
@ -864,6 +864,17 @@ func Test_Cataloger_PositiveCases(t *testing.T) {
Metadata: metadata("erlang-binary"), Metadata: metadata("erlang-binary"),
}, },
}, },
{
logicalFixture: "erlang/26.2.4/linux-amd64",
expected: pkg.Package{
Name: "erlang",
Version: "26.2.4",
Type: "binary",
PURL: "pkg:generic/erlang@26.2.4",
Locations: locations("liberts_internal.a"),
Metadata: metadata("erlang-library"),
},
},
{ {
logicalFixture: "nginx/1.25.1/linux-amd64", logicalFixture: "nginx/1.25.1/linux-amd64",
expected: pkg.Package{ expected: pkg.Package{

View File

@ -361,11 +361,28 @@ func DefaultClassifiers() []Classifier {
EvidenceMatcher: evidenceMatchers( EvidenceMatcher: evidenceMatchers(
FileContentsVersionMatcher( FileContentsVersionMatcher(
// <artificial>[NUL]/usr/src/otp_src_25.3.2.6/erts/ // <artificial>[NUL]/usr/src/otp_src_25.3.2.6/erts/
`(?m)/src/otp_src_(?P<version>[0-9]+\.[0-9]+(\.[0-9]+\.[0-9]+)?)/erts/`, `(?m)/src/otp_src_(?P<version>[0-9]+\.[0-9]+(\.[0-9]+){0,2}(-rc[0-9])?)/erts/`,
), ),
FileContentsVersionMatcher( FileContentsVersionMatcher(
// <artificial>[NUL]/usr/local/src/otp-25.3.2.7/erts/ // <artificial>[NUL]/usr/local/src/otp-25.3.2.7/erts/
`(?m)/usr/local/src/otp-(?P<version>[0-9]+\.[0-9]+(\.[0-9]+\.[0-9]+)?)/erts/`, `(?m)/usr/local/src/otp-(?P<version>[0-9]+\.[0-9]+(\.[0-9]+){0,2}(-rc[0-9])?)/erts/`,
),
),
Package: "erlang",
PURL: mustPURL("pkg:generic/erlang@version"),
CPEs: singleCPE("cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"),
},
{
Class: "erlang-library",
FileGlob: "**/liberts_internal.a",
EvidenceMatcher: evidenceMatchers(
FileContentsVersionMatcher(
// <artificial>[NUL]/usr/src/otp_src_25.3.2.6/erts/
`(?m)/src/otp_src_(?P<version>[0-9]+\.[0-9]+(\.[0-9]+){0,2}(-rc[0-9])?)/erts/`,
),
FileContentsVersionMatcher(
// <artificial>[NUL]/usr/local/src/otp-25.3.2.7/erts/
`(?m)/usr/local/src/otp-(?P<version>[0-9]+\.[0-9]+(\.[0-9]+){0,2}(-rc[0-9])?)/erts/`,
), ),
), ),
Package: "erlang", Package: "erlang",

View File

@ -31,20 +31,30 @@ from-images:
paths: paths:
- /usr/local/bin/gcc - /usr/local/bin/gcc
- version: 25.3.2.6 - name: erlang
version: 25.3.2.6
images: images:
- ref: erlang:25.3.2.6@sha256:0d1e530ec0e8047094f0a1d841754515bad9b0554260a3147fb34df31b3064fe - ref: erlang:25.3.2.6@sha256:0d1e530ec0e8047094f0a1d841754515bad9b0554260a3147fb34df31b3064fe
platform: linux/amd64 platform: linux/amd64
paths: paths:
- /usr/local/lib/erlang/erts-13.2.2.3/bin/erlexec - /usr/local/lib/erlang/erts-13.2.2.3/bin/erlexec
- version: 26.2.0.0 - name: erlang
version: 26.2.0.0
images: images:
- ref: erlang:26.2.0.0@sha256:31c3aa505fbe7526ca83c57b64e56ba505e62733e7e6518f4c06219de6e7396e - ref: erlang:26.2.0.0@sha256:31c3aa505fbe7526ca83c57b64e56ba505e62733e7e6518f4c06219de6e7396e
platform: linux/amd64 platform: linux/amd64
paths: paths:
- /usr/local/lib/erlang/erts-14.2/bin/erlexec - /usr/local/lib/erlang/erts-14.2/bin/erlexec
- name: erlang
version: 26.2.4
images:
- ref: erlang:26.2.4.0@sha256:bdb5bac0612856ec85982171dcd4a11de2e08e7f7469c86f3eb936bdfd1ec204
platform: linux/amd64
paths:
- /usr/local/lib/erlang/erts-14.2.4/lib/internal/liberts_internal.a
- version: 1.21.3 - version: 1.21.3
images: images:
- ref: golang:1.21.3@sha256:3ce8313c3513515040870c55e0c041a2b94f3576a58cfd3948633604214aa811 - ref: golang:1.21.3@sha256:3ce8313c3513515040870c55e0c041a2b94f3576a58cfd3948633604214aa811