diff options
author | Damien Miller <djm@mindrot.org> | 1999-11-13 13:28:45 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 1999-11-13 13:28:45 +1100 |
commit | d46202f0d19b18b4537804e3510e561d6a125a0d (patch) | |
tree | 3c01dae0373a5c8e6c06d5efe5bf17a1c346cf9b /ssh.c | |
parent | a2d6efe013e175f408733970803d535908554297 (diff) | |
download | openssh-git-d46202f0d19b18b4537804e3510e561d6a125a0d.tar.gz |
- Delay fork (-f option) in ssh until after port forwarded connections
have been initialised. Patch from Jani Hakala <jahakala@cc.jyu.fi>
Diffstat (limited to 'ssh.c')
-rw-r--r-- | ssh.c | 24 |
1 files changed, 12 insertions, 12 deletions
@@ -18,7 +18,7 @@ Modified to work with SSL by Niels Provos <provos@citi.umich.edu> in Canada. */ #include "includes.h" -RCSID("$Id: ssh.c,v 1.6 1999/11/12 04:19:27 damien Exp $"); +RCSID("$Id: ssh.c,v 1.7 1999/11/13 02:28:45 damien Exp $"); #include "xmalloc.h" #include "ssh.h" @@ -599,17 +599,6 @@ main(int ac, char **av) /* Close connection cleanly after attack. */ cipher_attack_detected = packet_disconnect; - /* If requested, fork and let ssh continue in the background. */ - if (fork_after_authentication_flag) - { - int ret = fork(); - if (ret == -1) - fatal("fork failed: %.100s", strerror(errno)); - if (ret != 0) - exit(0); - setsid(); - } - /* Enable compression if requested. */ if (options.compression) { @@ -771,6 +760,17 @@ main(int ac, char **av) options.remote_forwards[i].host_port); } + /* If requested, fork and let ssh continue in the background. */ + if (fork_after_authentication_flag) + { + int ret = fork(); + if (ret == -1) + fatal("fork failed: %.100s", strerror(errno)); + if (ret != 0) + exit(0); + setsid(); + } + /* If a command was specified on the command line, execute the command now. Otherwise request the server to start a shell. */ if (buffer_len(&command) > 0) |