- djm@cvs.openbsd.org 2009/11/17 05:31:44
[clientloop.c] fix incorrect exit status when multiplexing and channel ID 0 is recycled bz#1570 reported by peter.oliver AT eon-is.co.uk; ok dtucker
This commit is contained in:
parent
876045b0fb
commit
2944082b3f
|
@ -57,6 +57,10 @@
|
|||
the end of the select read/write fdset and make sure a reused FD
|
||||
is not touched before the pre-handlers are called.
|
||||
with and ok djm@
|
||||
- djm@cvs.openbsd.org 2009/11/17 05:31:44
|
||||
[clientloop.c]
|
||||
fix incorrect exit status when multiplexing and channel ID 0 is recycled
|
||||
bz#1570 reported by peter.oliver AT eon-is.co.uk; ok dtucker
|
||||
|
||||
20091226
|
||||
- (tim) [contrib/cygwin/Makefile] Install ssh-copy-id and ssh-copy-id.1
|
||||
|
|
18
clientloop.c
18
clientloop.c
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: clientloop.c,v 1.214 2009/10/24 11:15:29 andreas Exp $ */
|
||||
/* $OpenBSD: clientloop.c,v 1.215 2009/11/17 05:31:44 djm Exp $ */
|
||||
/*
|
||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||
|
@ -1856,15 +1856,17 @@ client_input_channel_req(int type, u_int32_t seq, void *ctxt)
|
|||
chan_rcvd_eow(c);
|
||||
} else if (strcmp(rtype, "exit-status") == 0) {
|
||||
exitval = packet_get_int();
|
||||
if (id == session_ident) {
|
||||
success = 1;
|
||||
exit_status = exitval;
|
||||
} else if (c->ctl_fd == -1) {
|
||||
error("client_input_channel_req: unexpected channel %d",
|
||||
session_ident);
|
||||
} else {
|
||||
if (c->ctl_fd != -1) {
|
||||
/* Dispatch to mux client */
|
||||
atomicio(vwrite, c->ctl_fd, &exitval, sizeof(exitval));
|
||||
success = 1;
|
||||
} else if (id == session_ident) {
|
||||
/* Record exit value of local session */
|
||||
success = 1;
|
||||
exit_status = exitval;
|
||||
} else {
|
||||
error("client_input_channel_req: unexpected channel %d",
|
||||
session_ident);
|
||||
}
|
||||
packet_check_eom();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue