diff --git a/NEWS b/NEWS index 370d5c934a3..501ca7e53d4 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,9 @@ PHP NEWS . Fixed timer leak in zend-max-execution-timers builds. (withinboredom) . Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus) +- Curl: + . Fix missing error check in curl_multi_init(). (divinity76) + - FPM: . Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path). (Jakub Zelenka) diff --git a/ext/curl/multi.c b/ext/curl/multi.c index 3acd6a4c5b1..73cb37bab36 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); }