diff options
author | cdoern <cdoern@redhat.com> | 2022-01-26 23:40:42 -0500 |
---|---|---|
committer | cdoern <cdoern@redhat.com> | 2022-01-27 22:13:02 -0500 |
commit | 56d95172f185e1b480453e66184fd55b897b0a36 (patch) | |
tree | 121739904b40585906b022e9dd47cf86270dbb7f /cmd/podman | |
parent | 7fc8bf4a428c08fcb9c9e97d238628319a20986e (diff) | |
download | podman-56d95172f185e1b480453e66184fd55b897b0a36.tar.gz podman-56d95172f185e1b480453e66184fd55b897b0a36.tar.bz2 podman-56d95172f185e1b480453e66184fd55b897b0a36.zip |
podman image scp syntax correction
[NO NEW TESTS NEEDED] image scp was reading the localhost syntax too loosely causing some errors with domains or hosts containing the word
localhost. Fixed that and added a few lines to make sure the pure localhost connections do not touch sshd
resolves #13021
Signed-off-by: cdoern <cdoern@redhat.com>
Diffstat (limited to 'cmd/podman')
-rw-r--r-- | cmd/podman/images/scp.go | 11 | ||||
-rw-r--r-- | cmd/podman/images/scp_utils.go | 3 |
2 files changed, 13 insertions, 1 deletions
diff --git a/cmd/podman/images/scp.go b/cmd/podman/images/scp.go index 1481e71c7..a6c27f3f9 100644 --- a/cmd/podman/images/scp.go +++ b/cmd/podman/images/scp.go @@ -147,6 +147,17 @@ func scp(cmd *cobra.Command, args []string) (finalErr error) { return err } + allLocal := true // if we are all localhost, do not validate connections but if we are using one localhost and one non we need to use sshd + for _, val := range cliConnections { + if !strings.Contains(val, "@localhost::") { + allLocal = false + break + } + } + if allLocal { + cliConnections = []string{} + } + var serv map[string]config.Destination serv, err = GetServiceInformation(cliConnections, cfg) if err != nil { diff --git a/cmd/podman/images/scp_utils.go b/cmd/podman/images/scp_utils.go index c488616c9..a85687a42 100644 --- a/cmd/podman/images/scp_utils.go +++ b/cmd/podman/images/scp_utils.go @@ -17,12 +17,13 @@ func parseImageSCPArg(arg string) (*entities.ImageScpOptions, []string, error) { cliConnections := []string{} switch { - case strings.Contains(arg, "@localhost"): // image transfer between users + case strings.Contains(arg, "@localhost::"): // image transfer between users location.User = strings.Split(arg, "@")[0] location, err = validateImagePortion(location, arg) if err != nil { return nil, nil, err } + cliConnections = append(cliConnections, arg) case strings.Contains(arg, "::"): location, err = validateImagePortion(location, arg) if err != nil { |