mirror of
https://github.com/anchore/syft.git
synced 2025-11-18 00:43:20 +01: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
@ -312,6 +312,42 @@ func Test_Cataloger_DefaultClassifiers_PositiveCases(t *testing.T) {
|
|||||||
Metadata: metadata("redis-binary"),
|
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",
|
name: "positive-libpython3.7.so",
|
||||||
fixtureDir: "test-fixtures/classifiers/positive/python-binary-lib-3.7",
|
fixtureDir: "test-fixtures/classifiers/positive/python-binary-lib-3.7",
|
||||||
|
|||||||
@ -58,8 +58,10 @@ var defaultClassifiers = []classifier{
|
|||||||
{
|
{
|
||||||
Class: "redis-binary",
|
Class: "redis-binary",
|
||||||
FileGlob: "**/redis-server",
|
FileGlob: "**/redis-server",
|
||||||
EvidenceMatcher: fileContentsVersionMatcher(
|
EvidenceMatcher: evidenceMatchers(
|
||||||
`(?s)payload %5.*(?P<version>\d.\d\.\d\d*?)[a-z0-9]{12}-[0-9]{19}`),
|
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",
|
Package: "redis",
|
||||||
PURL: mustPURL("pkg:generic/redis@version"),
|
PURL: mustPURL("pkg:generic/redis@version"),
|
||||||
CPEs: singleCPE("cpe:2.3:a:redislabs:redis:*:*:*:*:*:*:*:*"),
|
CPEs: singleCPE("cpe:2.3:a:redislabs:redis:*:*:*:*:*:*:*:*"),
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user