From 25e3bccbaa63d27b9d5e09c123f1eb28594d2bd6 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 7 Jun 2019 03:47:12 +0000 Subject: [PATCH] upstream: Check for user@host when parsing sftp target. This allows user@[1.2.3.4] to work without a path in addition to with one. bz#2999, ok djm@ OpenBSD-Commit-ID: d989217110932490ba8ce92127a9a6838878928b --- sftp.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/sftp.c b/sftp.c index 04881c83f..03c7a5c72 100644 --- a/sftp.c +++ b/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.191 2019/06/06 05:13:13 otto Exp $ */ +/* $OpenBSD: sftp.c,v 1.192 2019/06/07 03:47:12 dtucker Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -2527,12 +2527,17 @@ main(int argc, char **argv) port = tmp; break; default: + /* Try with user, host and path. */ if (parse_user_host_path(*argv, &user, &host, - &file1) == -1) { - /* Treat as a plain hostname. */ - host = xstrdup(*argv); - host = cleanhostname(host); - } + &file1) == 0) + break; + /* Try with user and host. */ + if (parse_user_host_port(*argv, &user, &host, NULL) + == 0) + break; + /* Treat as a plain hostname. */ + host = xstrdup(*argv); + host = cleanhostname(host); break; } file2 = *(argv + 1);