[php-src] master: Merge branch 'PHP-8.5'
Weilin Du <[email protected]> Mon, 27 Jul 2026 09:50:05 +0000
| Newsgroups | gmane.comp.php.cvs.general |
|---|---|
| Message-ID | <[email protected]> |
Author: Weilin Du (LamentXU123)
Date: 2026-07-27T17:44:59+08:00
Commit: https://github.com/php/php-src/commit/993433ad966893efb9ae2faf29471dc95fbf14ec
Raw diff: https://github.com/php/php-src/commit/993433ad966893efb9ae2faf29471dc95fbf14ec.diff
Merge branch 'PHP-8.5'
* PHP-8.5:
Fix leak when cURL PREREQFUNCTION returns a type other than int (#22726)
Changed paths:
M ext/curl/interface.c
M ext/curl/tests/curl_setopt_CURLOPT_PREREQFUNCTION.phpt
Diff:
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index d5d20d825652..85496ee1ab06 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -723,6 +723,7 @@ static int curl_prereqfunction(void *clientp, char *conn_primary_ip, char *conn_
zend_value_error("The CURLOPT_PREREQFUNCTION callback must return either CURL_PREREQFUNC_OK or CURL_PREREQFUNC_ABORT");
}
} else {
+ zval_ptr_dtor(&retval);
zend_type_error("The CURLOPT_PREREQFUNCTION callback must return either CURL_PREREQFUNC_OK or CURL_PREREQFUNC_ABORT");
}
}
diff --git a/ext/curl/tests/curl_setopt_CURLOPT_PREREQFUNCTION.phpt b/ext/curl/tests/curl_setopt_CURLOPT_PREREQFUNCTION.phpt
index 58d01df2a886..39a1d1e3caa8 100644
--- a/ext/curl/tests/curl_setopt_CURLOPT_PREREQFUNCTION.phpt
+++ b/ext/curl/tests/curl_setopt_CURLOPT_PREREQFUNCTION.phpt
@@ -78,7 +78,7 @@ try {
echo "\nTesting with invalid type\n";
curl_setopt($ch, CURLOPT_PREREQFUNCTION, function() use ($port) {
- return 'this should be an integer';
+ return ['this should be an integer' => random_bytes(64)];
});
try {
curl_exec($ch);