summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorumohnani8 <umohnani@redhat.com>2018-04-29 17:37:51 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-04-30 19:58:22 +0000
commitd5d6e6859286ab9310e4a79082d50c816941f1ae (patch)
tree0b06e31977db05efbab498d264ef74dfa374b34d /cmd
parentd1b03f470e8285613ccdf84f00e47143e7361c3b (diff)
downloadpodman-d5d6e6859286ab9310e4a79082d50c816941f1ae.tar.gz
podman-d5d6e6859286ab9310e4a79082d50c816941f1ae.tar.bz2
podman-d5d6e6859286ab9310e4a79082d50c816941f1ae.zip
Make ':' a restricted character for file names
file names for podman load, save, export, and import cannot contain ":" in them. It is a reserved character for parsing filenames. Signed-off-by: umohnani8 <umohnani@redhat.com> Closes: #694 Approved by: rhatdan
Diffstat (limited to 'cmd')
-rw-r--r--cmd/podman/export.go3
-rw-r--r--cmd/podman/import.go4
-rw-r--r--cmd/podman/load.go3
-rw-r--r--cmd/podman/parse.go9
-rw-r--r--cmd/podman/save.go3
5 files changed, 22 insertions, 0 deletions
diff --git a/cmd/podman/export.go b/cmd/podman/export.go
index eaf1ab39f..16c1f5c9b 100644
--- a/cmd/podman/export.go
+++ b/cmd/podman/export.go
@@ -56,6 +56,9 @@ func exportCmd(c *cli.Context) error {
return errors.Errorf("refusing to export to terminal. Use -o flag or redirect")
}
}
+ if err := validateFileName(output); err != nil {
+ return err
+ }
ctr, err := runtime.LookupContainer(args[0])
if err != nil {
diff --git a/cmd/podman/import.go b/cmd/podman/import.go
index 5a4fa45d9..446516024 100644
--- a/cmd/podman/import.go
+++ b/cmd/podman/import.go
@@ -75,6 +75,10 @@ func importCmd(c *cli.Context) error {
return errors.Errorf("too many arguments. Usage TARBALL [REFERENCE]")
}
+ if err := validateFileName(source); err != nil {
+ return err
+ }
+
changes := v1.ImageConfig{}
if c.IsSet("change") {
changes, err = util.GetImageConfig(c.StringSlice("change"))
diff --git a/cmd/podman/load.go b/cmd/podman/load.go
index 8186f1cc2..2f66df7c8 100644
--- a/cmd/podman/load.go
+++ b/cmd/podman/load.go
@@ -93,6 +93,9 @@ func loadCmd(c *cli.Context) error {
input = outFile.Name()
}
}
+ if err := validateFileName(input); err != nil {
+ return err
+ }
var writer io.Writer
if !c.Bool("quiet") {
diff --git a/cmd/podman/parse.go b/cmd/podman/parse.go
index b70e0caf7..484b9723f 100644
--- a/cmd/podman/parse.go
+++ b/cmd/podman/parse.go
@@ -816,3 +816,12 @@ func getLoggingPath(opts []string) string {
}
return ""
}
+
+// validateFileName returns an error if filename contains ":"
+// as it is currently not supported
+func validateFileName(filename string) error {
+ if strings.Contains(filename, ":") {
+ return errors.Errorf("invalid filename (should not contain ':') %q", filename)
+ }
+ return nil
+}
diff --git a/cmd/podman/save.go b/cmd/podman/save.go
index e41e95f69..ce82b588a 100644
--- a/cmd/podman/save.go
+++ b/cmd/podman/save.go
@@ -87,6 +87,9 @@ func saveCmd(c *cli.Context) error {
return errors.Errorf("refusing to save to terminal. Use -o flag or redirect")
}
}
+ if err := validateFileName(output); err != nil {
+ return err
+ }
var dst, manifestType string
switch c.String("format") {