]> andersk Git - openssh.git/commitdiff
- avsm@cvs.openbsd.org 2005/05/26 02:08:05
authordtucker <dtucker>
Wed, 1 Jun 2005 13:01:12 +0000 (13:01 +0000)
committerdtucker <dtucker>
Wed, 1 Jun 2005 13:01:12 +0000 (13:01 +0000)
     [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

ChangeLog
scp.c

index 51ca084c644b2e092b680bf389e7ef30e0bf696e..bf894ecc155139930fe97392d070d8c92d86ff49 100644 (file)
--- 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 1455c18fd2ad0f9568f4662ef7404f78cf944246..9dc060e26de7434a9e460317b39c93fcc4d5f39a 100644 (file)
--- 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
This page took 0.049695 seconds and 5 git commands to generate.