diff options
author | Darren Tucker <dtucker@zip.com.au> | 2004-06-22 12:57:08 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2004-06-22 12:57:08 +1000 |
commit | 723e945b55b29ecd7ce908cf81a67fd998764aff (patch) | |
tree | 058210660341eb85ad228cb19d7e4a26c470d4d5 | |
parent | 3f9fdc71219d498a996c4e4ca8330df7f598fb5d (diff) |
- djm@cvs.openbsd.org 2004/06/21 17:53:03
[session.c]
fix fd leak for multiple subsystem connections; with markus@
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | session.c | 8 |
2 files changed, 10 insertions, 3 deletions
@@ -18,6 +18,9 @@ | |||
18 | sshpty.c] | 18 | sshpty.c] |
19 | make ssh -Wshadow clean, no functional changes | 19 | make ssh -Wshadow clean, no functional changes |
20 | markus@ ok | 20 | markus@ ok |
21 | - djm@cvs.openbsd.org 2004/06/21 17:53:03 | ||
22 | [session.c] | ||
23 | fix fd leak for multiple subsystem connections; with markus@ | ||
21 | 24 | ||
22 | 20040620 | 25 | 20040620 |
23 | - (tim) [configure.ac Makefile.in] Only change TEST_SHELL on broken platforms. | 26 | - (tim) [configure.ac Makefile.in] Only change TEST_SHELL on broken platforms. |
@@ -1340,4 +1343,4 @@ | |||
1340 | - (djm) Trim deprecated options from INSTALL. Mention UsePAM | 1343 | - (djm) Trim deprecated options from INSTALL. Mention UsePAM |
1341 | - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu | 1344 | - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu |
1342 | 1345 | ||
1343 | $Id: ChangeLog,v 1.3421 2004/06/22 02:56:01 dtucker Exp $ | 1346 | $Id: ChangeLog,v 1.3422 2004/06/22 02:57:08 dtucker Exp $ |
@@ -33,7 +33,7 @@ | |||
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include "includes.h" | 35 | #include "includes.h" |
36 | RCSID("$OpenBSD: session.c,v 1.175 2004/05/11 19:01:43 deraadt Exp $"); | 36 | RCSID("$OpenBSD: session.c,v 1.176 2004/06/21 17:53:03 djm Exp $"); |
37 | 37 | ||
38 | #include "ssh.h" | 38 | #include "ssh.h" |
39 | #include "ssh1.h" | 39 | #include "ssh1.h" |
@@ -481,7 +481,11 @@ do_exec_no_pty(Session *s, const char *command) | |||
481 | close(perr[1]); | 481 | close(perr[1]); |
482 | 482 | ||
483 | if (compat20) { | 483 | if (compat20) { |
484 | session_set_fds(s, pin[1], pout[0], s->is_subsystem ? -1 : perr[0]); | 484 | if (s->is_subsystem) { |
485 | close(perr[0]); | ||
486 | perr[0] = -1; | ||
487 | } | ||
488 | session_set_fds(s, pin[1], pout[0], perr[0]); | ||
485 | } else { | 489 | } else { |
486 | /* Enter the interactive session. */ | 490 | /* Enter the interactive session. */ |
487 | server_loop(pid, pin[1], pout[0], perr[0]); | 491 | server_loop(pid, pin[1], pout[0], perr[0]); |