pkg/archive: keep walkRoot clean if source is /

Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"

Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a859)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Tibor Vass 2019-06-12 23:01:04 +00:00 committed by Sebastiaan van Stijn
parent 70a837138a
commit 8677bbe3f3
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C

View file

@ -7,6 +7,7 @@ import (
"errors" "errors"
"os" "os"
"path/filepath" "path/filepath"
"strings"
"syscall" "syscall"
"github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/idtools"
@ -26,7 +27,7 @@ func fixVolumePathPrefix(srcPath string) string {
// can't use filepath.Join(srcPath,include) because this will clean away // can't use filepath.Join(srcPath,include) because this will clean away
// a trailing "." or "/" which may be important. // a trailing "." or "/" which may be important.
func getWalkRoot(srcPath string, include string) string { func getWalkRoot(srcPath string, include string) string {
return srcPath + string(filepath.Separator) + include return strings.TrimSuffix(srcPath, string(filepath.Separator)) + string(filepath.Separator) + include
} }
// CanonicalTarNameForPath returns platform-specific filepath // CanonicalTarNameForPath returns platform-specific filepath