fix: improve fluent-bit binary detection regex pattern (#3701)

* fix: improve fluent-bit binary detection regex pattern

This fixes issue #3133 by updating the regex pattern for fluent-bit binary detection
to better handle ANSI escape sequences and multiple null bytes between the version
string and "Fluent Bit" text. The change also makes the %s format specifier optional,
supporting all variations in fluent-bit binary signatures.

Signed-off-by: Alan Pope <alan.pope@anchore.com>

* test: add fluent-bit 1.7.0-dev-3 test fixture for issue #3133

Signed-off-by: Alan Pope <alan.pope@anchore.com>

---------

Signed-off-by: Alan Pope <alan.pope@anchore.com>
This commit is contained in:
Alan Pope 2025-03-07 14:56:37 +00:00 committed by GitHub
parent 7571f8dfba
commit c687b7bfa5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 20 additions and 1 deletions

View File

@ -1221,6 +1221,17 @@ func Test_Cataloger_PositiveCases(t *testing.T) {
Metadata: metadata("fluent-bit-binary"),
},
},
{
logicalFixture: "fluent-bit/1.7.0-dev-3/linux-amd64",
expected: pkg.Package{
Name: "fluent-bit",
Version: "1.7.0",
Type: "binary",
PURL: "pkg:github/fluent/fluent-bit@1.7.0",
Locations: locations("fluent-bit"),
Metadata: metadata("fluent-bit-binary"),
},
},
{
logicalFixture: "wp/2.9.0/linux-amd64",
expected: pkg.Package{

View File

@ -572,7 +572,8 @@ func DefaultClassifiers() []Classifier {
// [NUL]3.0.2[NUL]%sFluent Bit
// [NUL]2.2.3[NUL]Fluent Bit
// [NUL]2.2.1[NUL][NUL][NUL]Fluent Bit
`\x00(?P<version>[0-9]+\.[0-9]+\.[0-9]+)\x00[^\d]*Fluent`,
// [NUL]1.7.0[NUL]\x1b[1m[NUL]%sFluent Bit (versions 1.7.0-dev-3 through 1.7.0-dev-9 and 1.7.0-rc4 through 1.7.0-rc8)
`\x00(?P<version>[0-9]+\.[0-9]+\.[0-9]+)\x00(\x1b\[1m\x00|\x00\x00)?(%s)?Fluent`,
),
Package: "fluent-bit",
PURL: mustPURL("pkg:github/fluent/fluent-bit@version"),

View File

@ -688,6 +688,13 @@ from-images:
paths:
- /fluent-bit/bin/fluent-bit
- version: 1.7.0-dev-3
images:
- ref: fluent/fluent-bit:1.7.0-dev-3@sha256:d8105ebefa27ca7d8ad2233ab0a4364ff43a9b31c484bde27f0d3d18988b34a0
platform: linux/amd64
paths:
- /fluent-bit/bin/fluent-bit
- name: openssl
version: 1.1.1w
images: