aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Stöneberg <oliverst@online.de>2013-10-18 14:57:33 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-10-18 14:57:33 +0200
commit4c300313c3e04b35b884b3bd33a7cff7a135ff65 (patch)
tree511995b23e50815d5fa9a54f027d6d3e6a8e1262
parentbec13a6ac02327f7d52aa6ef12a824eea780ddfb (diff)
downloadlibssh-4c300313c3e04b35b884b3bd33a7cff7a135ff65.tar.gz
libssh-4c300313c3e04b35b884b3bd33a7cff7a135ff65.tar.xz
libssh-4c300313c3e04b35b884b3bd33a7cff7a135ff65.zip
client: Added a missing NULL pointer check.
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--src/client.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/client.c b/src/client.c
index dad988ed..6d425d33 100644
--- a/src/client.c
+++ b/src/client.c
@@ -105,14 +105,19 @@ 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) {
+ leave_function();
+ 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);