summaryrefslogtreecommitdiff
path: root/ssh.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-06-25 04:26:55 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-06-25 04:26:55 +0000
commit6ab6486273b8a2fb42c3472a7fc8914f20b8edb7 (patch)
tree59951e2214732003e64223cc445948dd4a8d52d1 /ssh.c
parent488d8805f383e65f3e23c8adce2e1fbf7d2aabb9 (diff)
- markus@cvs.openbsd.org 2001/06/22 23:35:21
[ssh.c] don't overwrite argv (fixes ssh user@host in 'ps'), report by ericj@
Diffstat (limited to 'ssh.c')
-rw-r--r--ssh.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/ssh.c b/ssh.c
index 4859c5bed..e0e141fe1 100644
--- a/ssh.c
+++ b/ssh.c
@@ -39,7 +39,7 @@
39 */ 39 */
40 40
41#include "includes.h" 41#include "includes.h"
42RCSID("$OpenBSD: ssh.c,v 1.124 2001/06/07 20:23:05 markus Exp $"); 42RCSID("$OpenBSD: ssh.c,v 1.125 2001/06/22 23:35:21 markus Exp $");
43 43
44#include <openssl/evp.h> 44#include <openssl/evp.h>
45#include <openssl/err.h> 45#include <openssl/err.h>
@@ -244,7 +244,7 @@ main(int ac, char **av)
244{ 244{
245 int i, opt, optind, exit_status, ok; 245 int i, opt, optind, exit_status, ok;
246 u_short fwd_port, fwd_host_port; 246 u_short fwd_port, fwd_host_port;
247 char *optarg, *cp, buf[256]; 247 char *optarg, *p, *cp, buf[256];
248 struct stat st; 248 struct stat st;
249 struct passwd *pw; 249 struct passwd *pw;
250 int dummy; 250 int dummy;
@@ -305,10 +305,12 @@ main(int ac, char **av)
305 if (av[optind][0] != '-') { 305 if (av[optind][0] != '-') {
306 if (host) 306 if (host)
307 break; 307 break;
308 if ((cp = strchr(av[optind], '@'))) { 308 if (strchr(av[optind], '@')) {
309 if(cp == av[optind]) 309 p = xstrdup(av[optind]);
310 cp = strchr(p, '@');
311 if(cp == NULL || cp == p)
310 usage(); 312 usage();
311 options.user = av[optind]; 313 options.user = p;
312 *cp = '\0'; 314 *cp = '\0';
313 host = ++cp; 315 host = ++cp;
314 } else 316 } else