From 603088be928564be2d863a897fbc1729adc74814 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Mon, 7 Apr 2014 21:20:03 -0600 Subject: Fix edge case in bind mount absolute path detection `filepath.Abs` does more than just `filepath.IsAbs` - namely, `filepath.Clean`, which resolves things like `.../.` or `.../../...`, and causes even an absolute path like `/some/path/../absolute` to fail (or, in my case, `/path/to/docker/.`) Just using `filepath.IsAbs` directly is a much cheaper check, too. :) Docker-DCO-1.1-Signed-off-by: Andrew Page (github: tianon) --- runtime/volumes.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/runtime/volumes.go b/runtime/volumes.go index 0b6f3734e0..40db177174 100644 --- a/runtime/volumes.go +++ b/runtime/volumes.go @@ -177,12 +177,8 @@ func createVolumes(container *Container) error { if bindMap, exists := binds[volPath]; exists { isBindMount = true srcPath = bindMap.SrcPath - srcAbs, err := filepath.Abs(srcPath) - if err != nil { - return err - } - if srcPath != srcAbs { - return fmt.Errorf("%s should be an absolute path", srcPath) + if !filepath.IsAbs(srcPath) { + return fmt.Errorf("%s must be an absolute path", srcPath) } if strings.ToLower(bindMap.Mode) == "rw" { srcRW = true -- cgit v1.2.1