aboutsummaryrefslogtreecommitdiff
path: root/src/messages.c
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2013-07-13 22:56:32 +0200
committerAris Adamantiadis <aris@0xbadc0de.be>2013-07-13 22:56:32 +0200
commit9d88dcab3ebb76873ddc9bcbfe84abe38fef5f7e (patch)
tree74af43b1969539d35420fd8cf4235f9a187856f7 /src/messages.c
parentdd6a0b51acea0e7b24eea800fd27b3f96c0ed8cb (diff)
downloadlibssh-9d88dcab3ebb76873ddc9bcbfe84abe38fef5f7e.tar.gz
libssh-9d88dcab3ebb76873ddc9bcbfe84abe38fef5f7e.tar.xz
libssh-9d88dcab3ebb76873ddc9bcbfe84abe38fef5f7e.zip
Server: disallow channel opening till authenticated
Diffstat (limited to 'src/messages.c')
-rw-r--r--src/messages.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/messages.c b/src/messages.c
index 59b795e1..d4dd4380 100644
--- a/src/messages.c
+++ b/src/messages.c
@@ -1054,6 +1054,11 @@ SSH_PACKET_CALLBACK(ssh_packet_channel_open){
msg->channel_request_open.window = ntohl(window);
msg->channel_request_open.packet_size = ntohl(packet_size);
+ if (session->session_state != SSH_SESSION_STATE_AUTHENTICATED){
+ ssh_set_error(session,SSH_FATAL, "Invalid state when receiving channel open request (must be authenticated)");
+ goto error;
+ }
+
if (strcmp(type_c,"session") == 0) {
msg->channel_request_open.type = SSH_CHANNEL_SESSION;
SAFE_FREE(type_c);