fix(helm): improve error message for content outside base dir

Signed-off-by: Arash Deshmeh <adeshmeh@ca.ibm.com>
pull/5610/head
Arash Deshmeh 7 years ago
parent bacb6cebfe
commit 720c28f4c5

@ -118,7 +118,7 @@ func loadArchiveFiles(in io.Reader) ([]*BufferedFile, error) {
n = path.Clean(n) n = path.Clean(n)
if n == "." { if n == "." {
// In this case, the original path was relative when it should have been absolute. // In this case, the original path was relative when it should have been absolute.
return nil, errors.New("chart illegally contains empty path") return nil, fmt.Errorf("chart illegally contains content outside the base directory: %q", hd.Name)
} }
if strings.HasPrefix(n, "..") { if strings.HasPrefix(n, "..") {
return nil, errors.New("chart illegally references parent directory") return nil, errors.New("chart illegally references parent directory")

@ -90,9 +90,10 @@ func TestLoadArchive_InvalidArchive(t *testing.T) {
{"illegal-dots2.tgz", "/foo/../../malformed-helm-test", "chart illegally references parent directory"}, {"illegal-dots2.tgz", "/foo/../../malformed-helm-test", "chart illegally references parent directory"},
{"illegal-dots3.tgz", "/../../malformed-helm-test", "chart illegally references parent directory"}, {"illegal-dots3.tgz", "/../../malformed-helm-test", "chart illegally references parent directory"},
{"illegal-dots4.tgz", "./../../malformed-helm-test", "chart illegally references parent directory"}, {"illegal-dots4.tgz", "./../../malformed-helm-test", "chart illegally references parent directory"},
{"illegal-name.tgz", "./.", "chart illegally contains empty path"}, {"illegal-name.tgz", "./.", "chart illegally contains content outside the base directory: \"./.\""},
{"illegal-name2.tgz", "/./.", "chart illegally contains empty path"}, {"illegal-name2.tgz", "/./.", "chart illegally contains content outside the base directory: \"/./.\""},
{"illegal-name3.tgz", "missing-leading-slash", "chart illegally contains empty path"}, {"illegal-name3.tgz", "missing-leading-slash", "chart illegally contains content outside the base directory: \"missing-leading-slash\""},
{"illegal-name5.tgz", "content-outside-base-dir", "chart illegally contains content outside the base directory: \"content-outside-base-dir\""},
{"illegal-name4.tgz", "/missing-leading-slash", "chart metadata (Chart.yaml) missing"}, {"illegal-name4.tgz", "/missing-leading-slash", "chart metadata (Chart.yaml) missing"},
{"illegal-abspath.tgz", "//foo", "chart illegally contains absolute paths"}, {"illegal-abspath.tgz", "//foo", "chart illegally contains absolute paths"},
{"illegal-abspath2.tgz", "///foo", "chart illegally contains absolute paths"}, {"illegal-abspath2.tgz", "///foo", "chart illegally contains absolute paths"},

Loading…
Cancel
Save