aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2011-12-02 21:10:28 +0100
committerDaniel Stenberg <daniel@haxx.se>2011-12-02 21:10:28 +0100
commitd81f5ea3e0a5f9a532fcf685898e041fafa93a5b (patch)
tree110bf924cebab2cbaf17cf819f3243a122afb472 /lib
parentadc88ca203bbb602cc9a1726669526fa7b3723ef (diff)
multi interface: only use non-NULL function pointer!
If the socket callback function pointer hasn't been set, we must not attempt to use it. Commit adc88ca20 made it more likely to occur.
Diffstat (limited to 'lib')
-rw-r--r--lib/multi.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/multi.c b/lib/multi.c
index 3059e49be..f3b892c91 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1940,11 +1940,12 @@ static void singlesocket(struct Curl_multi *multi,
}
/* we know (entry != NULL) at this point, see the logic above */
- multi->socket_cb(easy->easy_handle,
- s,
- action,
- multi->socket_userp,
- entry->socketp);
+ if(multi->socket_cb)
+ multi->socket_cb(easy->easy_handle,
+ s,
+ action,
+ multi->socket_userp,
+ entry->socketp);
entry->action = action; /* store the current action state */
}
@@ -2019,11 +2020,12 @@ static void singlesocket(struct Curl_multi *multi,
remove_sock_from_hash = FALSE;
if(remove_sock_from_hash) {
- multi->socket_cb(easy->easy_handle,
- s,
- CURL_POLL_REMOVE,
- multi->socket_userp,
- entry ? entry->socketp : NULL);
+ if(multi->socket_cb)
+ multi->socket_cb(easy->easy_handle,
+ s,
+ CURL_POLL_REMOVE,
+ multi->socket_userp,
+ entry ? entry->socketp : NULL);
sh_delentry(multi->sockhash, s);
}