mirror of
git://anongit.mindrot.org/openssh.git
synced 2025-03-03 05:08:25 +00:00
- markus@cvs.openbsd.org 2004/07/28 08:56:22
[sshd.c] call setsid() _before_ re-exec
This commit is contained in:
parent
8ae66a5032
commit
6832b83744
@ -1,5 +1,9 @@
|
|||||||
20040812
|
20040812
|
||||||
- (dtucker) [sshd.c] Remove duplicate variable imported during sync.
|
- (dtucker) [sshd.c] Remove duplicate variable imported during sync.
|
||||||
|
- (dtucker) OpenBSD CVS Sync
|
||||||
|
- markus@cvs.openbsd.org 2004/07/28 08:56:22
|
||||||
|
[sshd.c]
|
||||||
|
call setsid() _before_ re-exec
|
||||||
|
|
||||||
20040720
|
20040720
|
||||||
- (djm) OpenBSD CVS Sync
|
- (djm) OpenBSD CVS Sync
|
||||||
@ -1567,4 +1571,4 @@
|
|||||||
- (djm) Trim deprecated options from INSTALL. Mention UsePAM
|
- (djm) Trim deprecated options from INSTALL. Mention UsePAM
|
||||||
- (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu
|
- (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.3489 2004/08/12 12:16:55 dtucker Exp $
|
$Id: ChangeLog,v 1.3490 2004/08/12 12:36:51 dtucker Exp $
|
||||||
|
32
sshd.c
32
sshd.c
@ -42,7 +42,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: sshd.c,v 1.299 2004/07/17 05:31:41 dtucker Exp $");
|
RCSID("$OpenBSD: sshd.c,v 1.300 2004/07/28 08:56:22 markus Exp $");
|
||||||
|
|
||||||
#include <openssl/dh.h>
|
#include <openssl/dh.h>
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
@ -1548,6 +1548,21 @@ main(int ac, char **av)
|
|||||||
/* This is the child processing a new connection. */
|
/* This is the child processing a new connection. */
|
||||||
setproctitle("%s", "[accepted]");
|
setproctitle("%s", "[accepted]");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create a new session and process group since the 4.4BSD
|
||||||
|
* setlogin() affects the entire process group. We don't
|
||||||
|
* want the child to be able to affect the parent.
|
||||||
|
*/
|
||||||
|
#if !defined(SSHD_ACQUIRES_CTTY)
|
||||||
|
/*
|
||||||
|
* If setsid is called, on some platforms sshd will later acquire a
|
||||||
|
* controlling terminal which will result in "could not set
|
||||||
|
* controlling tty" errors.
|
||||||
|
*/
|
||||||
|
if (!debug_flag && !inetd_flag && setsid() < 0)
|
||||||
|
error("setsid: %.100s", strerror(errno));
|
||||||
|
#endif
|
||||||
|
|
||||||
if (rexec_flag) {
|
if (rexec_flag) {
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
@ -1587,21 +1602,6 @@ main(int ac, char **av)
|
|||||||
sock_in, sock_out, newsock, startup_pipe, config_s[0]);
|
sock_in, sock_out, newsock, startup_pipe, config_s[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Create a new session and process group since the 4.4BSD
|
|
||||||
* setlogin() affects the entire process group. We don't
|
|
||||||
* want the child to be able to affect the parent.
|
|
||||||
*/
|
|
||||||
#if !defined(SSHD_ACQUIRES_CTTY)
|
|
||||||
/*
|
|
||||||
* If setsid is called, on some platforms sshd will later acquire a
|
|
||||||
* controlling terminal which will result in "could not set
|
|
||||||
* controlling tty" errors.
|
|
||||||
*/
|
|
||||||
if (!debug_flag && !inetd_flag && setsid() < 0)
|
|
||||||
error("setsid: %.100s", strerror(errno));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disable the key regeneration alarm. We will not regenerate the
|
* Disable the key regeneration alarm. We will not regenerate the
|
||||||
* key since we are no longer in a position to give it to anyone. We
|
* key since we are no longer in a position to give it to anyone. We
|
||||||
|
Loading…
Reference in New Issue
Block a user