builder/normalizeWorkdir: Always return cleaned path

The `normalizeWorkdir` function has two branches, one that returns a
result of `filepath.Join` which always returns a cleaned path, and
another one where the input string is returned unmodified.

To make these two outputs consistent, also clean the path in the second
branch.

This also makes the cleaning of the container workdir explicit in the
`normalizeWorkdir` function instead of relying on the
`SetupWorkingDirectory` to mutate it.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
This commit is contained in:
Paweł Gronowski 2024-04-16 13:45:12 +02:00
parent 82d8f8d6e6
commit a4d5b6b4d0
No known key found for this signature in database
GPG key ID: B85EFCFE26DEF92A
2 changed files with 2 additions and 2 deletions

View file

@ -22,7 +22,7 @@ func normalizeWorkdir(_ string, current string, requested string) (string, error
if !filepath.IsAbs(requested) { if !filepath.IsAbs(requested) {
return filepath.Join(string(os.PathSeparator), current, requested), nil return filepath.Join(string(os.PathSeparator), current, requested), nil
} }
return requested, nil return filepath.Clean(requested), nil
} }
// resolveCmdLine takes a command line arg set and optionally prepends a platform-specific // resolveCmdLine takes a command line arg set and optionally prepends a platform-specific

View file

@ -4296,7 +4296,7 @@ func (s *DockerCLIBuildSuite) TestBuildBuildTimeArgExpansion(c *testing.T) {
imgName := "bldvarstest" imgName := "bldvarstest"
wdVar := "WDIR" wdVar := "WDIR"
wdVal := "/tmp/" wdVal := "/tmp"
addVar := "AFILE" addVar := "AFILE"
addVal := "addFile" addVal := "addFile"
copyVar := "CFILE" copyVar := "CFILE"