diff options
| author | rofl0r <retnyg@gmx.net> | 2011-08-06 10:31:43 +0200 |
|---|---|---|
| committer | Andreas Schneider <asn@cryptomilk.org> | 2011-08-07 12:46:47 +0200 |
| commit | a1ef27c0b882d0791ab29584f015d1f8bee44996 (patch) | |
| tree | 708657551f17d11310909cb8fc06d3724bd8f610 /src/channels.c | |
| parent | fb8f2cd11b938f0b1fe660df7630c0eee47b27ff (diff) | |
channels: Fix checking for fatal errors.
We need this that we don't end up in and infinite poll loop.
(cherry picked from commit 563fbe4de8ee090b40b50415a86f9a3da16f46b0)
Conflicts:
src/poll.c
Diffstat (limited to 'src/channels.c')
| -rw-r--r-- | src/channels.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/channels.c b/src/channels.c index f0eb9ef8..916b84a1 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1422,6 +1422,11 @@ static int channel_request(ssh_channel channel, const char *request, } while(channel->request_state == SSH_CHANNEL_REQ_STATE_PENDING){ ssh_handle_packets(session,-1); + if(session->session_state == SSH_SESSION_STATE_ERROR) { + channel->request_state = SSH_CHANNEL_REQ_STATE_ERROR; + break; + } + } /* we received something */ switch (channel->request_state){ |
