Skip to content

Commit

Permalink
Do not validate the volume source path in specgen
Browse files Browse the repository at this point in the history
The volume src path should not be validated in specgen since
the remote client also uses that part and the path must only
exists on the server. This now fails later and only on the
server and not the client.

I don't think I can add a test for this because the CI runs
server and client always on the same vm.

Fixes containers#8473

Signed-off-by: Paul Holzinger <[email protected]>
  • Loading branch information
Paul Holzinger committed Nov 26, 2020
1 parent d408395 commit f7f85fe
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 deletions.
4 changes: 2 additions & 2 deletions cmd/podman/common/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -323,8 +323,8 @@ func getBindMount(args []string) (spec.Mount, error) {
if len(kv) == 1 {
return newMount, errors.Wrapf(optionArgError, kv[0])
}
if err := parse.ValidateVolumeHostDir(kv[1]); err != nil {
return newMount, err
if len(kv[1]) == 0 {
return newMount, errors.Wrapf(optionArgError, "host directory cannot be empty")
}
newMount.Source = kv[1]
setSource = true
Expand Down
5 changes: 2 additions & 3 deletions pkg/specgen/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,10 @@ func GenVolumeMounts(volumeFlag []string) (map[string]spec.Mount, map[string]*Na
return nil, nil, nil, err
}
}

// Do not check source dir for anonymous volumes
if len(splitVol) > 1 {
if err := parse.ValidateVolumeHostDir(src); err != nil {
return nil, nil, nil, err
if len(src) == 0 {
return nil, nil, nil, errors.New("host directory cannot be empty")
}
}
if err := parse.ValidateVolumeCtrDir(dest); err != nil {
Expand Down

0 comments on commit f7f85fe

Please sign in to comment.