From 03d6399b0c8217a933e5059027cfdc041258872e Mon Sep 17 00:00:00 2001 From: witchcraze <67056980+witchcraze@users.noreply.github.com> Date: Tue, 14 Apr 2026 00:31:19 +0900 Subject: [PATCH] fix: update erlang classifier (#4766) Signed-off-by: witchcraze --- .../cataloger/binary/classifier_cataloger_test.go | 11 +++++++++++ syft/pkg/cataloger/binary/classifiers.go | 4 ++++ .../snippets/erlang/17.5.6.9/linux-amd64/beam.smp | Bin 0 -> 472 bytes syft/pkg/cataloger/binary/testdata/config.yaml | 8 ++++++++ 4 files changed, 23 insertions(+) create mode 100644 syft/pkg/cataloger/binary/testdata/classifiers/snippets/erlang/17.5.6.9/linux-amd64/beam.smp diff --git a/syft/pkg/cataloger/binary/classifier_cataloger_test.go b/syft/pkg/cataloger/binary/classifier_cataloger_test.go index 2c847837a..95b8487ea 100644 --- a/syft/pkg/cataloger/binary/classifier_cataloger_test.go +++ b/syft/pkg/cataloger/binary/classifier_cataloger_test.go @@ -1188,6 +1188,17 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("erlang-alpine-binary"), }, }, + { + logicalFixture: "erlang/17.5.6.9/linux-amd64", + expected: pkg.Package{ + Name: "erlang", + Version: "17.5.6.9", + Type: "binary", + PURL: "pkg:generic/erlang@17.5.6.9", + Locations: locations("beam.smp"), + Metadata: metadata("erlang-alpine-binary"), + }, + }, { logicalFixture: "swipl/9.3.8/linux-amd64", expected: pkg.Package{ diff --git a/syft/pkg/cataloger/binary/classifiers.go b/syft/pkg/cataloger/binary/classifiers.go index e9692b3cb..53f902c0d 100644 --- a/syft/pkg/cataloger/binary/classifiers.go +++ b/syft/pkg/cataloger/binary/classifiers.go @@ -374,6 +374,10 @@ func DefaultClassifiers() []binutils.Classifier { // [NUL][NUL]26.1.2[NUL][NUL][NUL][NUL][NUL][NUL][NUL]NUL[NUL][NUL]Erlang/OTP `\x00+(?P[0-9]+\.[0-9]+(\.[0-9]+){0,2}(-rc[0-9])?)\x00+Erlang/OTP`, ), + m.FileContentsVersionMatcher( + // Erlang/OTP 17%s [erts-6.4.1.6] [source] [64-bit] [smp:%beu:%beu] [async-threads:%d] [hipe] [kernel-poll:%s][NUL]17.5.6.9[NUL][NUL][NUL] + `(?s)Erlang/OTP.{1,150}\x00+(?P[0-9]+\.[0-9]+(\.[0-9]+){0,2}(-rc[0-9])?)\x00+`, + ), ), Package: "erlang", PURL: mustPURL("pkg:generic/erlang@version"), diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/erlang/17.5.6.9/linux-amd64/beam.smp b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/erlang/17.5.6.9/linux-amd64/beam.smp new file mode 100644 index 0000000000000000000000000000000000000000..70ecff55ff23c5f7afcecd464bc0dd0fa66c8cac GIT binary patch literal 472 zcmb78xlY6|6r`Z?S6Eu5Oz?fArv?eS)kkJjHVb9ig*xuOoExcik_&8&7u+&ySeu zBH=wOIhCps6|K|(@6&W%0<4V^rSJ098Rok1aNc0mE?ve@=5_(sq`GKUtL^6N$qOta m^yR#Usf%<#H&j=$Qk7jJ-M+gm7+H=RA3wf$6aRp>-@Bgy9%~~2 literal 0 HcmV?d00001 diff --git a/syft/pkg/cataloger/binary/testdata/config.yaml b/syft/pkg/cataloger/binary/testdata/config.yaml index 54dfaca3d..1f363bca8 100644 --- a/syft/pkg/cataloger/binary/testdata/config.yaml +++ b/syft/pkg/cataloger/binary/testdata/config.yaml @@ -79,6 +79,14 @@ from-images: paths: - /usr/local/lib/erlang/erts-14.1.1/bin/beam.smp + - name: erlang + version: 17.5.6.9 + images: + - ref: erlang:17.5.6.9@sha256:b4c39d943dfbe0351db06ac50097e4981dce4e3a01c66a1e6a19e6865e6fcb20 + platform: linux/amd64 + paths: + - /usr/local/lib/erlang/erts-6.4.1.6/bin/beam.smp + - version: 9.3.8 images: - ref: swipl:9.3.8@sha256:6a15e6a03afe943228924a5502ba763e653ff28d9b3391e2b3e1fc3e991f37d4