Mercurial > dropbear
diff common-channel.c @ 955:36eacc322e00
Make sure the check_close() handler runs when a server child process exits
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Mon, 28 Jul 2014 23:23:49 +0800 |
parents | 2e402a09e21e |
children | 0bb16232e7c4 |
line wrap: on
line diff
--- a/common-channel.c Mon Jul 28 22:59:16 2014 +0800 +++ b/common-channel.c Mon Jul 28 23:23:49 2014 +0800 @@ -258,6 +258,12 @@ writechannel(channel, channel->errfd, channel->extrabuf); do_check_close = 1; } + + if (ses.channel_signal_pending) { + /* SIGCHLD can change channel state for server sessions */ + do_check_close = 1; + ses.channel_signal_pending = 0; + } /* handle any channel closing etc */ if (do_check_close) {