1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #15846 from ZJU-SEL/11646-fix-path-validations

fix 11646 to check volume path in server side
This commit is contained in:
Tibor Vass 2015-09-03 20:42:37 -04:00
commit 057f53f503
3 changed files with 7 additions and 1 deletions

View file

@ -52,6 +52,7 @@ func TestParseBindMount(t *testing.T) {
{"name:/tmp", "external", "/tmp", "", "name", "external", "", true, false}, {"name:/tmp", "external", "/tmp", "", "name", "external", "", true, false},
{"name:/tmp:ro", "local", "/tmp", "", "name", "local", "", false, false}, {"name:/tmp:ro", "local", "/tmp", "", "name", "local", "", false, false},
{"local/name:/tmp:rw", "", "/tmp", "", "local/name", "local", "", true, false}, {"local/name:/tmp:rw", "", "/tmp", "", "local/name", "local", "", true, false},
{"/tmp:tmp", "", "", "", "", "", "", true, true},
} }
for _, c := range cases { for _, c := range cases {

View file

@ -2,7 +2,7 @@ package daemon
import "testing" import "testing"
func TestParseVolumeFrom(t *testing.T) { func TestParseVolumesFrom(t *testing.T) {
cases := []struct { cases := []struct {
spec string spec string
expID string expID string

View file

@ -81,6 +81,11 @@ func parseBindMount(spec string, mountLabel string, config *runconfig.Config) (*
return nil, fmt.Errorf("Invalid volume specification: %s", spec) return nil, fmt.Errorf("Invalid volume specification: %s", spec)
} }
//validate the volumes destination path
if !filepath.IsAbs(bind.Destination) {
return nil, fmt.Errorf("Invalid volume destination path: %s mount path must be absolute.", bind.Destination)
}
name, source, err := parseVolumeSource(arr[0]) name, source, err := parseVolumeSource(arr[0])
if err != nil { if err != nil {
return nil, err return nil, err