diff --git a/ext/curl/multi.c b/ext/curl/multi.c index 3acd6a4c5b190..73cb37bab3604 100644 --- a/ext/curl/multi.c +++ b/ext/curl/multi.c @@ -60,12 +60,17 @@ static inline php_curlm *curl_multi_from_obj(zend_object *obj) { PHP_FUNCTION(curl_multi_init) { php_curlm *mh; + CURLM *multi; ZEND_PARSE_PARAMETERS_NONE(); - + multi = curl_multi_init(); + if (UNEXPECTED(multi == NULL)) { + zend_throw_error(NULL, "%s(): Could not initialize a new cURL multi handle", get_active_function_name()); + RETURN_THROWS(); + } object_init_ex(return_value, curl_multi_ce); mh = Z_CURL_MULTI_P(return_value); - mh->multi = curl_multi_init(); + mh->multi = multi; zend_llist_init(&mh->easyh, sizeof(zval), _php_curl_multi_cleanup_list, 0); }