From fecfb2f939545e4367344ef2700096c5ed79fde3 Mon Sep 17 00:00:00 2001 From: Laurent Goderre Date: Wed, 10 Jan 2024 10:57:32 -0500 Subject: [PATCH] fix: support traefik binary from the official Docker image (#2484) Signed-off-by: Laurent Goderre --- syft/pkg/cataloger/binary/cataloger_test.go | 11 +++++++++++ syft/pkg/cataloger/binary/default_classifiers.go | 2 +- .../snippets/traefik/2.10.7/linux-amd64/traefik | Bin 0 -> 352 bytes .../cataloger/binary/test-fixtures/config.yaml | 7 +++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/traefik/2.10.7/linux-amd64/traefik 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 0000000000000000000000000000000000000000..af68592f1dd1f624105ec6fd0e5fae19f91aa231 GIT binary patch literal 352 zcmZ9GJx;_h5JtU}Zn%P_r2{Qv$G_VwNc0q30LPhOBSI3fkq{j>prPahR2%?NAwdBJ z7eTaCU_`dzE9QNABaNnwXE+zbc|@vDc}KLuVJ<=;tqI_HgYC(%oC~RduiCoraX4B= zWo%YfYnK9g8MQ%5q=CHE7(-!w3>Xvz0_hWg@v@|{OsP@{k_tt1N^`0kTpx=?($<-z zl{bYhQ~;2=sx&AMp+Z%mMdOnp8AzAttdd}@L*s1LA#pyPPDOb+pcvm2Lno+fn(jj6 z6=zqs2hUGC3vn~qW31o*y1su@GYK=t*j9W?6UNwgP6k`|!w2?p_wxR_@hfvS|L|{q OE{;b7BezHHX8r)dBwMxs literal 0 HcmV?d00001 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...