Skip to content

Commit

Permalink
builder/normalizeWorkdir: Always return cleaned path
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
vvoland committed Apr 19, 2024
1 parent 82d8f8d commit a4d5b6b
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion builder/dockerfile/dispatchers_unix.go
Expand Up @@ -22,7 +22,7 @@ func normalizeWorkdir(_ string, current string, requested string) (string, error
if !filepath.IsAbs(requested) {
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
Expand Down
2 changes: 1 addition & 1 deletion integration-cli/docker_cli_build_test.go
Expand Up @@ -4296,7 +4296,7 @@ func (s *DockerCLIBuildSuite) TestBuildBuildTimeArgExpansion(c *testing.T) {
imgName := "bldvarstest"

wdVar := "WDIR"
wdVal := "/tmp/"
wdVal := "/tmp"
addVar := "AFILE"
addVal := "addFile"
copyVar := "CFILE"
Expand Down

0 comments on commit a4d5b6b

Please sign in to comment.