mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
validate mount path for tmpfs
There was no validation for `docker run --tmpfs foo`. In this PR, only two obvious rules are implemented: - path must be absolute - path must not be "/" We should add more rules carefully. Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
This commit is contained in:
parent
af90d50647
commit
4a8799dc0a
3 changed files with 65 additions and 0 deletions
43
integration-cli/docker_cli_create_unix_test.go
Normal file
43
integration-cli/docker_cli_create_unix_test.go
Normal file
|
@ -0,0 +1,43 @@
|
|||
// +build !windows
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/go-check/check"
|
||||
)
|
||||
|
||||
// Test case for #30166 (target was not validated)
|
||||
func (s *DockerSuite) TestCreateTmpfsMountsTarget(c *check.C) {
|
||||
testRequires(c, DaemonIsLinux)
|
||||
type testCase struct {
|
||||
target string
|
||||
expectedError string
|
||||
}
|
||||
cases := []testCase{
|
||||
{
|
||||
target: ".",
|
||||
expectedError: "mount path must be absolute",
|
||||
},
|
||||
{
|
||||
target: "foo",
|
||||
expectedError: "mount path must be absolute",
|
||||
},
|
||||
{
|
||||
target: "/",
|
||||
expectedError: "destination can't be '/'",
|
||||
},
|
||||
{
|
||||
target: "//",
|
||||
expectedError: "destination can't be '/'",
|
||||
},
|
||||
}
|
||||
for _, x := range cases {
|
||||
out, _, _ := dockerCmdWithError("create", "--tmpfs", x.target, "busybox", "sh")
|
||||
if x.expectedError != "" && !strings.Contains(out, x.expectedError) {
|
||||
c.Fatalf("mounting tmpfs over %q should fail with %q, but got %q",
|
||||
x.target, x.expectedError, out)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue