diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-06-09 23:27:41 +0200 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-06-09 23:27:41 +0200 |
commit | 7ff69d9c48d9dd727650a6966cbc3b104fda1d5f (patch) | |
tree | e826e64ec33ecf7e9ed46c14344671311b5a2c03 | |
parent | 640e3830f295baae596cc34ec2fc79fc08807d0f (diff) | |
download | libssh-7ff69d9c48d9dd727650a6966cbc3b104fda1d5f.tar.gz libssh-7ff69d9c48d9dd727650a6966cbc3b104fda1d5f.tar.xz libssh-7ff69d9c48d9dd727650a6966cbc3b104fda1d5f.zip |
packet: Abort session on fatal errors on packets
-rw-r--r-- | src/packet.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/packet.c b/src/packet.c index 99760dff..a670b693 100644 --- a/src/packet.c +++ b/src/packet.c @@ -136,7 +136,8 @@ int ssh_packet_socket_callback(const void *data, size_t receivedlen, void *user) size_t processed=0; /* number of byte processed from the callback */ enter_function(); - + if (session->session_state == SSH_SESSION_STATE_ERROR) + goto error; switch(session->packet_state) { case PACKET_STATE_INIT: if(receivedlen < blocksize){ @@ -289,6 +290,7 @@ int ssh_packet_socket_callback(const void *data, size_t receivedlen, void *user) session->packet_state); error: + session->session_state= SSH_SESSION_STATE_ERROR; leave_function(); return processed; } |