summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>2020-10-02 17:33:52 +0900
committerSebastiaan van Stijn <github@gone.nl>2020-10-09 22:22:53 +0200
commitecd3baca25918936ffdda5dec9c55314b96a9c3b (patch)
tree1561482064376a510d43bf214702ecfc7fae88c4
parent233a6379e5c07588d8eb3be3b7a57dc916336b0b (diff)
downloaddocker-ecd3baca25918936ffdda5dec9c55314b96a9c3b.tar.gz
pkg/aaparser: support parsing version like "3.0.0-beta1"
Fix #41517 Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp> (cherry picked from commit ee079e4692c26417eb4c711a1e489203624a6972) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
-rw-r--r--pkg/aaparser/aaparser.go3
-rw-r--r--pkg/aaparser/aaparser_test.go14
2 files changed, 17 insertions, 0 deletions
diff --git a/pkg/aaparser/aaparser.go b/pkg/aaparser/aaparser.go
index 9c12e8db8d..50ada7f788 100644
--- a/pkg/aaparser/aaparser.go
+++ b/pkg/aaparser/aaparser.go
@@ -56,6 +56,9 @@ func parseVersion(output string) (int, error) {
words := strings.Split(lines[0], " ")
version := words[len(words)-1]
+ // trim "-beta1" suffix from version="3.0.0-beta1" if exists
+ version = strings.SplitN(version, "-", 2)[0]
+
// split by major minor version
v := strings.Split(version, ".")
if len(v) == 0 || len(v) > 3 {
diff --git a/pkg/aaparser/aaparser_test.go b/pkg/aaparser/aaparser_test.go
index 6d1f737702..64ec814729 100644
--- a/pkg/aaparser/aaparser_test.go
+++ b/pkg/aaparser/aaparser_test.go
@@ -59,6 +59,20 @@ Copyright 2009-2012 Canonical Ltd.
`,
version: 314159,
},
+ {
+ output: `AppArmor parser version 3.0.0-beta1
+Copyright (C) 1999-2008 Novell Inc.
+Copyright 2009-2018 Canonical Ltd.
+`,
+ version: 300000,
+ },
+ {
+ output: `AppArmor parser version 3.0.0-beta1-foo-bar
+Copyright (C) 1999-2008 Novell Inc.
+Copyright 2009-2018 Canonical Ltd.
+`,
+ version: 300000,
+ },
}
for _, v := range versions {