mirror of
https://github.com/anchore/syft
synced 2024-09-21 06:31:56 +00:00
Enhance redis binary classifier (#2329)
Allow existing matcher to match host identifiers longer than 12 characters. The binaries distributed by redis have the version before payload, so add a matcher for that. Add test fixtures covering these scenarios. Signed-off-by: David Dooling <david.dooling@docker.com>
This commit is contained in:
parent
1c582f0aa5
commit
34774a0e10
5 changed files with 40 additions and 2 deletions
|
@ -312,6 +312,42 @@ func Test_Cataloger_DefaultClassifiers_PositiveCases(t *testing.T) {
|
|||
Metadata: metadata("redis-binary"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "positive-redis-7.0.14",
|
||||
fixtureDir: "test-fixtures/classifiers/positive/redis-server-7.0.14",
|
||||
expected: pkg.Package{
|
||||
Name: "redis",
|
||||
Version: "7.0.14",
|
||||
Type: "binary",
|
||||
PURL: "pkg:generic/redis@7.0.14",
|
||||
Locations: locations("redis-server"),
|
||||
Metadata: metadata("redis-binary"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "positive-redis-7.2.3-amd64",
|
||||
fixtureDir: "test-fixtures/classifiers/positive/redis-server-7.2.3-amd64",
|
||||
expected: pkg.Package{
|
||||
Name: "redis",
|
||||
Version: "7.2.3",
|
||||
Type: "binary",
|
||||
PURL: "pkg:generic/redis@7.2.3",
|
||||
Locations: locations("redis-server"),
|
||||
Metadata: metadata("redis-binary"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "positive-redis-7.2.3-arm64",
|
||||
fixtureDir: "test-fixtures/classifiers/positive/redis-server-7.2.3-arm64",
|
||||
expected: pkg.Package{
|
||||
Name: "redis",
|
||||
Version: "7.2.3",
|
||||
Type: "binary",
|
||||
PURL: "pkg:generic/redis@7.2.3",
|
||||
Locations: locations("redis-server"),
|
||||
Metadata: metadata("redis-binary"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "positive-libpython3.7.so",
|
||||
fixtureDir: "test-fixtures/classifiers/positive/python-binary-lib-3.7",
|
||||
|
|
|
@ -58,8 +58,10 @@ var defaultClassifiers = []classifier{
|
|||
{
|
||||
Class: "redis-binary",
|
||||
FileGlob: "**/redis-server",
|
||||
EvidenceMatcher: fileContentsVersionMatcher(
|
||||
`(?s)payload %5.*(?P<version>\d.\d\.\d\d*?)[a-z0-9]{12}-[0-9]{19}`),
|
||||
EvidenceMatcher: evidenceMatchers(
|
||||
fileContentsVersionMatcher(`(?s)payload %5.*?(?P<version>\d.\d\.\d\d*)[a-z0-9]{12,15}-[0-9]{19}`),
|
||||
fileContentsVersionMatcher(`(?s)\x00(?P<version>\d.\d\.\d\d*)[a-z0-9]{12}-[0-9]{19}\x00.*?payload %5`),
|
||||
),
|
||||
Package: "redis",
|
||||
PURL: mustPURL("pkg:generic/redis@version"),
|
||||
CPEs: singleCPE("cpe:2.3:a:redislabs:redis:*:*:*:*:*:*:*:*"),
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue