Date: Thu, 5 Nov 2015 07:13:01 -0000
Whenever the user name is not specified, try to use the current user's name.
---
 scp.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/scp.c b/scp.c
index 9a24490..a19d28f 100644
--- a/scp.c
+++ b/scp.c
@@ -482,7 +482,9 @@ toremote(char *targ, int argc, char **argv)
                tuser = NULL;
        }
 
-       if (tuser != NULL && !okname(tuser)) {
+       if (tuser == NULL)
+               tuser = get_user_name();
+       else if (!okname(tuser)) {
                xfree(arg);
                return;
        }
@@ -514,14 +516,17 @@ toremote(char *targ, int argc, char **argv)
                                host = cleanhostname(host);
                                suser = argv[i];
                                if (*suser == '\0')
-                                       suser = get_user_name();
+                                       suser = NULL;
-                               else if (!okname(suser))
-                                       continue;
-                               addargs(&alist, "-l");
-                               addargs(&alist, "%s", suser);
                        } else {
                                host = cleanhostname(argv[i]);
+                               suser = NULL;
                        }
+                       if (suser == NULL)
+                               suser = get_user_name();
+                       else if (!okname(suser))
+                               continue;
+                       addargs(&alist, "-l");
+                       addargs(&alist, "%s", suser);
                        addargs(&alist, "%s", host);
                        addargs(&alist, "%s", cmd);
                        addargs(&alist, "%s", src);
@@ -583,8 +588,12 @@ tolocal(int argc, char **argv)
                        *host++ = 0;
                        suser = argv[i];
                        if (*suser == '\0')
-                               suser = get_user_name();
+                               suser = NULL;
                }
+               if (suser == NULL)
+                       suser = get_user_name();
+               else if (!okname(suser))
+                       continue;
                host = cleanhostname(host);
                len = strlen(src) + CMDNEEDS + 20;
                bp = xmalloc(len);
-- 
2.4.3

Reply via email to