summaryrefslogtreecommitdiffstats
path: root/libssh/src/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/src/client.c')
-rw-r--r--libssh/src/client.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/libssh/src/client.c b/libssh/src/client.c
index dad988ed..1fb963d7 100644
--- a/libssh/src/client.c
+++ b/libssh/src/client.c
@@ -105,14 +105,18 @@ static int callback_receive_banner(const void *data, size_t len, void *user) {
ssh_pcap_context_write(session->pcap_ctx,SSH_PCAP_DIR_IN,buffer,i+1,i+1);
}
#endif
- if(buffer[i]=='\r')
- buffer[i]='\0';
- if(buffer[i]=='\n'){
- buffer[i]='\0';
- str=strdup(buffer);
- /* number of bytes read */
- ret=i+1;
- session->serverbanner=str;
+ if(buffer[i]=='\r') {
+ buffer[i]='\0';
+ }
+ if (buffer[i]=='\n') {
+ buffer[i] = '\0';
+ str = strdup(buffer);
+ if (str == NULL) {
+ return SSH_ERROR;
+ }
+ /* number of bytes read */
+ ret = i + 1;
+ session->serverbanner = str;
session->session_state=SSH_SESSION_STATE_BANNER_RECEIVED;
SSH_LOG(SSH_LOG_PACKET,"Received banner: %s",str);
session->ssh_connection_callback(session);
@@ -529,7 +533,7 @@ pending:
if (timeout == 0) {
timeout = 10 * 1000;
}
- SSH_LOG(SSH_LOG_PACKET,"ssh_connect: Actual timeout : %d", timeout);
+ SSH_LOG(SSH_LOG_PACKET,"Actual timeout : %d", timeout);
ret = ssh_handle_packets_termination(session, timeout, ssh_connect_termination, session);
if (ret == SSH_ERROR || !ssh_connect_termination(session)) {
ssh_set_error(session, SSH_FATAL,
@@ -546,7 +550,7 @@ pending:
session->session_state = SSH_SESSION_STATE_ERROR;
}
}
- SSH_LOG(SSH_LOG_PACKET,"ssh_connect: Actual state : %d",session->session_state);
+ SSH_LOG(SSH_LOG_PACKET,"current state : %d",session->session_state);
if(!ssh_is_blocking(session) && !ssh_connect_termination(session)){
return SSH_AGAIN;
}