Skip to content

Commit

Permalink
Ensure RawPath match Path when resolving reference
Browse files Browse the repository at this point in the history
Signed-off-by: Mathieu Parent <math.parent@gmail.com>
(cherry picked from commit dbb4eb6)
  • Loading branch information
sathieu authored and mattfarina committed Jul 14, 2021
1 parent 8b678fe commit d506314
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
5 changes: 2 additions & 3 deletions pkg/repo/chartrepo.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,8 @@ func FindChartInAuthAndTLSAndPassRepoURL(repoURL, username, password, chartName,
// ResolveReferenceURL resolves refURL relative to baseURL.
// If refURL is absolute, it simply returns refURL.
func ResolveReferenceURL(baseURL, refURL string) (string, error) {
parsedBaseURL, err := url.Parse(baseURL)
// We need a trailing slash for ResolveReference to work, but make sure there isn't already one
parsedBaseURL, err := url.Parse(strings.TrimSuffix(baseURL, "/") + "/")
if err != nil {
return "", errors.Wrapf(err, "failed to parse %s as URL", baseURL)
}
Expand All @@ -296,8 +297,6 @@ func ResolveReferenceURL(baseURL, refURL string) (string, error) {
return "", errors.Wrapf(err, "failed to parse %s as URL", refURL)
}

// We need a trailing slash for ResolveReference to work, but make sure there isn't already one
parsedBaseURL.Path = strings.TrimSuffix(parsedBaseURL.Path, "/") + "/"
return parsedBaseURL.ResolveReference(parsedRefURL).String(), nil
}

Expand Down
8 changes: 8 additions & 0 deletions pkg/repo/chartrepo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -400,4 +400,12 @@ func TestResolveReferenceURL(t *testing.T) {
if chartURL != "https://charts.helm.sh/stable/nginx-0.2.0.tgz" {
t.Errorf("%s", chartURL)
}

chartURL, err = ResolveReferenceURL("http://localhost:8123/charts%2fwith%2fescaped%2fslash", "nginx-0.2.0.tgz")
if err != nil {
t.Errorf("%s", err)
}
if chartURL != "http://localhost:8123/charts%2fwith%2fescaped%2fslash/nginx-0.2.0.tgz" {
t.Errorf("%s", chartURL)
}
}

0 comments on commit d506314

Please sign in to comment.