]> andersk Git - openssh.git/commitdiff
- djm@cvs.openbsd.org 2004/06/21 17:53:03
authordtucker <dtucker>
Tue, 22 Jun 2004 02:57:08 +0000 (02:57 +0000)
committerdtucker <dtucker>
Tue, 22 Jun 2004 02:57:08 +0000 (02:57 +0000)
     [session.c]
     fix fd leak for multiple subsystem connections; with markus@

ChangeLog
session.c

index 466edc4d2ae04d967611935fa756c88d5a82e16a..450195f7faf43270a208420729b2b86f16300f6e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,9 @@
      sshpty.c]
      make ssh -Wshadow clean, no functional changes
      markus@ ok
+   - djm@cvs.openbsd.org 2004/06/21 17:53:03
+     [session.c]
+     fix fd leak for multiple subsystem connections; with markus@
 
 20040620
  - (tim) [configure.ac Makefile.in] Only change TEST_SHELL on broken platforms.
index 2fe511612689501a371f6b5018ad2e136835c922..8720ae7be3cda447f9363985b6bb91427e89d2f8 100644 (file)
--- a/session.c
+++ b/session.c
@@ -33,7 +33,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: session.c,v 1.175 2004/05/11 19:01:43 deraadt Exp $");
+RCSID("$OpenBSD: session.c,v 1.176 2004/06/21 17:53:03 djm Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -481,7 +481,11 @@ do_exec_no_pty(Session *s, const char *command)
        close(perr[1]);
 
        if (compat20) {
-               session_set_fds(s, pin[1], pout[0], s->is_subsystem ? -1 : perr[0]);
+               if (s->is_subsystem) {
+                       close(perr[0]);
+                       perr[0] = -1;
+               }
+               session_set_fds(s, pin[1], pout[0], perr[0]);
        } else {
                /* Enter the interactive session. */
                server_loop(pid, pin[1], pout[0], perr[0]);
This page took 0.184887 seconds and 5 git commands to generate.