From f95b5372625a1ad83f61ea86e54ac6a74f2fd09a Mon Sep 17 00:00:00 2001 From: Noel Georgi Date: Wed, 3 Aug 2022 02:28:51 +0530 Subject: [PATCH] fix: allow files in extension spec Support allowing explicit files in extensions. Signed-off-by: Noel Georgi --- .../good/extension1/rootfs/lib64/ld-linux-x86-64.so.2 | 0 internal/pkg/extensions/validate.go | 6 ++---- 2 files changed, 2 insertions(+), 4 deletions(-) create mode 100644 internal/pkg/extensions/testdata/good/extension1/rootfs/lib64/ld-linux-x86-64.so.2 diff --git a/internal/pkg/extensions/testdata/good/extension1/rootfs/lib64/ld-linux-x86-64.so.2 b/internal/pkg/extensions/testdata/good/extension1/rootfs/lib64/ld-linux-x86-64.so.2 new file mode 100644 index 000000000..e69de29bb diff --git a/internal/pkg/extensions/validate.go b/internal/pkg/extensions/validate.go index 9134573cf..763614242 100644 --- a/internal/pkg/extensions/validate.go +++ b/internal/pkg/extensions/validate.go @@ -76,13 +76,11 @@ func (ext *Extension) validateContents() error { // regular file: check for file path being whitelisted if !d.IsDir() { - dirPath := filepath.Dir(itemPath) - allowed := false for _, allowedPath := range extensions.AllowedPaths { - if strings.HasPrefix(dirPath, allowedPath) { - _, err = filepath.Rel(allowedPath, dirPath) + if strings.HasPrefix(itemPath, allowedPath) { + _, err = filepath.Rel(allowedPath, itemPath) if err == nil { allowed = true