diff options
author | Damien Miller <djm@mindrot.org> | 2005-04-03 10:16:11 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2005-04-03 10:16:11 +1000 |
commit | 3dae15c6111a90a4a7417a34fa47a1cfee16963e (patch) | |
tree | 7df77118a695fb7f287c0f43f0eb9f87e1290688 /scp.c | |
parent | de0de39082ee971aa3ff442e0201d9eff5c75cca (diff) |
- deraadt@cvs.openbsd.org 2005/03/31 18:39:21
[scp.c]
copy argv[] element instead of smashing the one that ps will see; ok otto
Diffstat (limited to 'scp.c')
-rw-r--r-- | scp.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -71,7 +71,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: scp.c,v 1.119 2005/01/24 10:22:06 dtucker Exp $"); +RCSID("$OpenBSD: scp.c,v 1.120 2005/03/31 18:39:21 deraadt Exp $"); #include "xmalloc.h" #include "atomicio.h" @@ -361,20 +361,23 @@ void toremote(char *targ, int argc, char **argv) { int i, len; - char *bp, *host, *src, *suser, *thost, *tuser; + char *bp, *host, *src, *suser, *thost, *tuser, *arg; *targ++ = 0; if (*targ == 0) targ = "."; - if ((thost = strrchr(argv[argc - 1], '@'))) { + arg = strdup(argv[argc - 1]); + if (!arg) + err(1, "malloc"); + if ((thost = strrchr(arg, '@'))) { /* user@host */ *thost++ = 0; - tuser = argv[argc - 1]; + tuser = arg; if (*tuser == '\0') tuser = NULL; } else { - thost = argv[argc - 1]; + thost = arg; tuser = NULL; } |