diff --git a/syft/pkg/cataloger/binary/cataloger_test.go b/syft/pkg/cataloger/binary/cataloger_test.go index 961f2449e..879617bce 100644 --- a/syft/pkg/cataloger/binary/cataloger_test.go +++ b/syft/pkg/cataloger/binary/cataloger_test.go @@ -133,6 +133,17 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("traefik-binary"), }, }, + { + logicalFixture: "traefik/2.10.7/linux-amd64", + expected: pkg.Package{ + Name: "traefik", + Version: "2.10.7", + Type: "binary", + PURL: "pkg:generic/traefik@2.10.7", + Locations: locations("traefik"), + Metadata: metadata("traefik-binary"), + }, + }, { logicalFixture: "memcached/1.6.18/linux-amd64", expected: pkg.Package{ diff --git a/syft/pkg/cataloger/binary/default_classifiers.go b/syft/pkg/cataloger/binary/default_classifiers.go index 39b5db5da..8f54fd899 100644 --- a/syft/pkg/cataloger/binary/default_classifiers.go +++ b/syft/pkg/cataloger/binary/default_classifiers.go @@ -214,7 +214,7 @@ func DefaultClassifiers() []Classifier { EvidenceMatcher: FileContentsVersionMatcher( // [NUL]v1.7.34[NUL] // [NUL]2.9.6[NUL] - `(?m)\x00v?(?P[0-9]+\.[0-9]+\.[0-9]+(-alpha[0-9]|-beta[0-9]|-rc[0-9])?)\x00`), + `(?m)(\x00|\x{FFFD})v?(?P[0-9]+\.[0-9]+\.[0-9]+(-alpha[0-9]|-beta[0-9]|-rc[0-9])?)\x00`), Package: "traefik", PURL: mustPURL("pkg:generic/traefik@version"), }, diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/traefik/2.10.7/linux-amd64/traefik b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/traefik/2.10.7/linux-amd64/traefik new file mode 100644 index 000000000..af68592f1 Binary files /dev/null and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/traefik/2.10.7/linux-amd64/traefik differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/config.yaml b/syft/pkg/cataloger/binary/test-fixtures/config.yaml index d105857b3..f34203570 100644 --- a/syft/pkg/cataloger/binary/test-fixtures/config.yaml +++ b/syft/pkg/cataloger/binary/test-fixtures/config.yaml @@ -329,6 +329,13 @@ from-images: paths: - /usr/local/bin/traefik + - version: 2.10.7 + images: + - ref: traefik:2.10.7@sha256:a98415716a91066ef5e442969887ebb3df7d80775b5bfa7b67fcaed989833d84 + platform: linux/amd64 + paths: + - /usr/local/bin/traefik + # from the original dynamic fixtures...