diff options
author | Daniel Stenberg <daniel@haxx.se> | 2011-12-02 21:10:28 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2011-12-02 21:10:28 +0100 |
commit | d81f5ea3e0a5f9a532fcf685898e041fafa93a5b (patch) | |
tree | 110bf924cebab2cbaf17cf819f3243a122afb472 /lib | |
parent | adc88ca203bbb602cc9a1726669526fa7b3723ef (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.c | 22 |
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); } |