diff options
author | Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp> | 2020-10-02 17:33:52 +0900 |
---|---|---|
committer | Sebastiaan van Stijn <github@gone.nl> | 2020-10-09 22:22:53 +0200 |
commit | ecd3baca25918936ffdda5dec9c55314b96a9c3b (patch) | |
tree | 1561482064376a510d43bf214702ecfc7fae88c4 | |
parent | 233a6379e5c07588d8eb3be3b7a57dc916336b0b (diff) | |
download | docker-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.go | 3 | ||||
-rw-r--r-- | pkg/aaparser/aaparser_test.go | 14 |
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 { |