mirror of git://anongit.mindrot.org/openssh.git
- djm@cvs.openbsd.org 2003/06/04 12:40:39
[scp.c] kill ssh process upon receipt of signal, bz #241. based on patch from esb AT hawaii.edu; ok markus@
This commit is contained in:
parent
65d1f5765f
commit
b69aaa8db7
|
@ -20,6 +20,10 @@
|
||||||
- djm@cvs.openbsd.org 2003/06/04 12:18:49
|
- djm@cvs.openbsd.org 2003/06/04 12:18:49
|
||||||
[scp.c]
|
[scp.c]
|
||||||
ansify; ok markus@
|
ansify; ok markus@
|
||||||
|
- djm@cvs.openbsd.org 2003/06/04 12:40:39
|
||||||
|
[scp.c]
|
||||||
|
kill ssh process upon receipt of signal, bz #241.
|
||||||
|
based on patch from esb AT hawaii.edu; ok markus@
|
||||||
- (djm) Update to fix of bug #584: lock card before return.
|
- (djm) Update to fix of bug #584: lock card before return.
|
||||||
From larsch@trustcenter.de
|
From larsch@trustcenter.de
|
||||||
|
|
||||||
|
@ -450,4 +454,4 @@
|
||||||
- Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
|
- Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
|
||||||
Report from murple@murple.net, diagnosis from dtucker@zip.com.au
|
Report from murple@murple.net, diagnosis from dtucker@zip.com.au
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.2778 2003/06/04 12:51:08 djm Exp $
|
$Id: ChangeLog,v 1.2779 2003/06/04 12:51:24 djm Exp $
|
||||||
|
|
16
scp.c
16
scp.c
|
@ -71,7 +71,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: scp.c,v 1.104 2003/06/04 12:18:49 djm Exp $");
|
RCSID("$OpenBSD: scp.c,v 1.105 2003/06/04 12:40:39 djm Exp $");
|
||||||
|
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
#include "atomicio.h"
|
#include "atomicio.h"
|
||||||
|
@ -107,7 +107,16 @@ int showprogress = 1;
|
||||||
char *ssh_program = _PATH_SSH_PROGRAM;
|
char *ssh_program = _PATH_SSH_PROGRAM;
|
||||||
|
|
||||||
/* This is used to store the pid of ssh_program */
|
/* This is used to store the pid of ssh_program */
|
||||||
pid_t do_cmd_pid;
|
pid_t do_cmd_pid = -1;
|
||||||
|
|
||||||
|
static void
|
||||||
|
killchild(int signo)
|
||||||
|
{
|
||||||
|
if (do_cmd_pid > 1)
|
||||||
|
kill(do_cmd_pid, signo);
|
||||||
|
|
||||||
|
_exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function executes the given command as the specified user on the
|
* This function executes the given command as the specified user on the
|
||||||
|
@ -170,6 +179,9 @@ do_cmd(char *host, char *remuser, char *cmd, int *fdin, int *fdout, int argc)
|
||||||
*fdout = pin[1];
|
*fdout = pin[1];
|
||||||
close(pout[1]);
|
close(pout[1]);
|
||||||
*fdin = pout[0];
|
*fdin = pout[0];
|
||||||
|
signal(SIGTERM, killchild);
|
||||||
|
signal(SIGINT, killchild);
|
||||||
|
signal(SIGHUP, killchild);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue