diff --git a/syft/pkg/cataloger/binary/classifier_cataloger_test.go b/syft/pkg/cataloger/binary/classifier_cataloger_test.go index dcc9849c675..721ee9ee045 100644 --- a/syft/pkg/cataloger/binary/classifier_cataloger_test.go +++ b/syft/pkg/cataloger/binary/classifier_cataloger_test.go @@ -116,6 +116,17 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("mysql-binary"), }, }, + { + logicalFixture: "mysql/8.0.37/linux-amd64", + expected: pkg.Package{ + Name: "mysql", + Version: "8.0.37", + Type: "binary", + PURL: "pkg:generic/mysql@8.0.37", + Locations: locations("mysql"), + Metadata: metadata("mysql-binary"), + }, + }, { logicalFixture: "percona-server/8.0.35/linux-amd64", expected: pkg.Package{ diff --git a/syft/pkg/cataloger/binary/classifiers.go b/syft/pkg/cataloger/binary/classifiers.go index 0d491f25feb..5f4d3aa6651 100644 --- a/syft/pkg/cataloger/binary/classifiers.go +++ b/syft/pkg/cataloger/binary/classifiers.go @@ -294,8 +294,12 @@ func DefaultClassifiers() []Classifier { { Class: "mysql-binary", FileGlob: "**/mysql", - EvidenceMatcher: FileContentsVersionMatcher( - `(?m).*/mysql-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)`), + EvidenceMatcher: evidenceMatchers( + // shutdown[NUL]8.0.37[NUL][NUL][NUL][NUL][NUL]mysql_real_esc + FileContentsVersionMatcher(`\x00(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)\x00+mysql`), + // /export/home/pb2/build/sb_0-26781090-1516292385.58/release/mysql-8.0.4-rc/mysys_ssl/my_default.cc + FileContentsVersionMatcher(`(?m).*/mysql-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)`), + ), Package: "mysql", PURL: mustPURL("pkg:generic/mysql@version"), CPEs: singleCPE("cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*"), diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/mysql/8.0.34/linux-amd64/mysql b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/mysql/8.0.34/linux-amd64/mysql index 571e977876d..9ff7ddd39ce 100644 Binary files a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/mysql/8.0.34/linux-amd64/mysql and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/mysql/8.0.34/linux-amd64/mysql differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/mysql/8.0.37/linux-amd64/mysql b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/mysql/8.0.37/linux-amd64/mysql new file mode 100644 index 00000000000..45109e6f731 Binary files /dev/null and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/mysql/8.0.37/linux-amd64/mysql differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/config.yaml b/syft/pkg/cataloger/binary/test-fixtures/config.yaml index 50dd6bcc8ed..9ea3c2de71f 100644 --- a/syft/pkg/cataloger/binary/test-fixtures/config.yaml +++ b/syft/pkg/cataloger/binary/test-fixtures/config.yaml @@ -157,6 +157,13 @@ from-images: paths: - /usr/bin/mysql + - version: 8.0.37 + images: + - ref: mysql:8.0.37-bookworm@sha256:bad55a5bb69d6710927792384b5eb55669ee15dc85dca1888874e4a7993eecd8 + platform: linux/amd64 + paths: + - /usr/bin/mysql + - name: percona-server version: 8.0.35 images: