diff options
author | cdoern <cdoern@redhat.com> | 2022-01-26 23:40:42 -0500 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2022-02-03 15:02:39 -0500 |
commit | 6d747dca22c8a232273be468304d59c6fe802d5d (patch) | |
tree | a22893a97c5accda1086d38fd36b981fdd003b04 /cmd/podman/images | |
parent | e0cbcdc335618ba0d53ecae9cc81230c7cb464e3 (diff) | |
download | podman-6d747dca22c8a232273be468304d59c6fe802d5d.tar.gz podman-6d747dca22c8a232273be468304d59c6fe802d5d.tar.bz2 podman-6d747dca22c8a232273be468304d59c6fe802d5d.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/images')
-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 81dcda123..d07a5d99d 100644 --- a/cmd/podman/images/scp.go +++ b/cmd/podman/images/scp.go @@ -146,6 +146,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 { |