From: dtucker Date: Wed, 1 Jun 2005 13:01:12 +0000 (+0000) Subject: - avsm@cvs.openbsd.org 2005/05/26 02:08:05 X-Git-Tag: V_4_2_P1~84 X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/commitdiff_plain/8f4ab41b676651280207fbb6721f5a57dbdf9031 - avsm@cvs.openbsd.org 2005/05/26 02:08:05 [scp.c] If copying multiple files to a target file (which normally fails, as it must be a target directory), kill the spawned ssh child before exiting. This stops it trying to authenticate and spewing lots of output. deraadt@ ok --- diff --git a/ChangeLog b/ChangeLog index 51ca084c..bf894ecc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,7 +3,13 @@ arpa/nameser.h. - (dtucker) [configure.ac openbsd-compat/Makefile.in openbsd-compat/strtoll.c] Add strtoll to the compat library, from OpenBSD. - + - (dtucker) OpenBSD CVS Sync + - avsm@cvs.openbsd.org 2005/05/26 02:08:05 + [scp.c] + If copying multiple files to a target file (which normally fails, as it + must be a target directory), kill the spawned ssh child before exiting. + This stops it trying to authenticate and spewing lots of output. + deraadt@ ok 20050531 - (dtucker) [contrib/aix/pam.conf] Correct comments. From davidl at diff --git a/scp.c b/scp.c index 1455c18f..9dc060e2 100644 --- a/scp.c +++ b/scp.c @@ -71,7 +71,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: scp.c,v 1.122 2005/05/24 17:32:43 avsm Exp $"); +RCSID("$OpenBSD: scp.c,v 1.123 2005/05/26 02:08:05 avsm Exp $"); #include "xmalloc.h" #include "atomicio.h" @@ -109,11 +109,13 @@ static void killchild(int signo) { if (do_cmd_pid > 1) { - kill(do_cmd_pid, signo); + kill(do_cmd_pid, signo ? signo : SIGTERM); waitpid(do_cmd_pid, NULL, 0); } - _exit(1); + if (signo) + _exit(1); + exit(1); } /* @@ -1072,7 +1074,7 @@ verifydir(char *cp) errno = ENOTDIR; } run_err("%s: %s", cp, strerror(errno)); - exit(1); + killchild(0); } int