From 99dfaccc176a4b908366fccd48a44c972a26c33d Mon Sep 17 00:00:00 2001 From: djm Date: Sun, 3 Apr 2005 00:16:11 +0000 Subject: [PATCH] - 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 --- ChangeLog | 6 ++++++ scp.c | 13 ++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 64273f08..f988cd8f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20050403 + - (djm) OpenBSD CVS Sync + - 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 + 20050331 - (dtucker) OpenBSD CVS Sync - jmc@cvs.openbsd.org 2005/03/16 11:10:38 diff --git a/scp.c b/scp.c index f69fd05f..dcea1946 100644 --- a/scp.c +++ b/scp.c @@ -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; } -- 2.45.2