aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2013-11-18 14:42:06 +0100
committerAris Adamantiadis <aris@0xbadc0de.be>2013-11-18 14:42:06 +0100
commit9f4fa222507c684399b7db62df0c8ffe0d1f6fb3 (patch)
tree7f7fe2a8a44a202b48936d2f5d7a4d58f9bf37da
parent330f6c73f676eb1ef8d5862ce0257de1adbd47f9 (diff)
downloadlibssh-9f4fa222507c684399b7db62df0c8ffe0d1f6fb3.tar.gz
libssh-9f4fa222507c684399b7db62df0c8ffe0d1f6fb3.tar.xz
libssh-9f4fa222507c684399b7db62df0c8ffe0d1f6fb3.zip
sockets: null pointer check
-rw-r--r--src/socket.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/socket.c b/src/socket.c
index fcf52025..7a1815c6 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -307,11 +307,13 @@ int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, socket_t fd, int r
if(s->state == SSH_SOCKET_CONNECTING){
SSH_LOG(SSH_LOG_PACKET,"Received POLLOUT in connecting state");
s->state = SSH_SOCKET_CONNECTED;
- ssh_poll_set_events(p,POLLOUT | POLLIN);
- r = ssh_socket_set_blocking(ssh_socket_get_fd_in(s));
- if (r < 0) {
- return -1;
- }
+ if (p != NULL) {
+ ssh_poll_set_events(p,POLLOUT | POLLIN);
+ }
+ r = ssh_socket_set_blocking(ssh_socket_get_fd_in(s));
+ if (r < 0) {
+ return -1;
+ }
if(s->callbacks && s->callbacks->connected)
s->callbacks->connected(SSH_SOCKET_CONNECTED_OK,0,s->callbacks->userdata);
return 0;