]> andersk Git - openssh.git/commitdiff
- guenther@cvs.openbsd.org 2010/01/15 00:05:22
authordtucker <dtucker>
Fri, 15 Jan 2010 00:46:03 +0000 (00:46 +0000)
committerdtucker <dtucker>
Fri, 15 Jan 2010 00:46:03 +0000 (00:46 +0000)
     [sftp.c]
     Reset SIGTERM to SIG_DFL before executing ssh, so that even if sftp
     inherited SIGTERM as ignored it will still be able to kill the ssh it
     starts.
     ok dtucker@

ChangeLog
sftp.c

index 2572042406f74afb4a4f3186551acaeb339d939c..0d35871eba9e7bc186779ff29e16acf0b3ab710f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      [sftp-common.c]
      use user_from{uid,gid} to lookup up ids since it keeps a small cache.
      ok djm
+   - guenther@cvs.openbsd.org 2010/01/15 00:05:22
+     [sftp.c]
+     Reset SIGTERM to SIG_DFL before executing ssh, so that even if sftp
+     inherited SIGTERM as ignored it will still be able to kill the ssh it
+     starts.
+     ok dtucker@
 
 20100114
  - (djm) [platform.h] Add missing prototype for
diff --git a/sftp.c b/sftp.c
index ac6ac9fed3a2c766f20ff1412165f1d96c1cbe7f..e01703ba90b7f7678ae0e170b8a8b17a29d85df9 100644 (file)
--- a/sftp.c
+++ b/sftp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp.c,v 1.121 2010/01/13 12:48:34 jmc Exp $ */
+/* $OpenBSD: sftp.c,v 1.122 2010/01/15 00:05:22 guenther Exp $ */
 /*
  * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
  *
@@ -2027,9 +2027,11 @@ connect_to_server(char *path, char **args, int *in, int *out)
                 * The underlying ssh is in the same process group, so we must
                 * ignore SIGINT if we want to gracefully abort commands,
                 * otherwise the signal will make it to the ssh process and
-                * kill it too
+                * kill it too.  Contrawise, since sftp sends SIGTERMs to the
+                * underlying ssh, it must *not* ignore that signal.
                 */
                signal(SIGINT, SIG_IGN);
+               signal(SIGTERM, SIG_DFL);
                execvp(path, args);
                fprintf(stderr, "exec: %s: %s\n", path, strerror(errno));
                _exit(1);
This page took 0.044833 seconds and 5 git commands to generate.