From e1f28629e1bfd76611de57da74ac3a19317b6c1b Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Tue, 7 May 2024 13:43:57 +0200 Subject: [PATCH] Callable curl options should be nullable symfony/http-client/Response/CurlResponse.php depends on this behavior. --- ext/curl/interface.c | 5 +++++ ext/curl/tests/callable_nullable_option.phpt | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 ext/curl/tests/callable_nullable_option.phpt diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 59362adddb7bd..5ae40596e5bf7 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1520,6 +1520,11 @@ static bool php_curl_set_callable_handler(zend_fcall_info_cache *const handler_f zend_fcc_dtor(handler_fcc); } + if (Z_TYPE_P(callable) == IS_NULL) { + handler_fcc->function_handler = NULL; + return true; + } + char *error = NULL; if (UNEXPECTED(!zend_is_callable_ex(callable, /* object */ NULL, /* check_flags */ 0, /* callable_name */ NULL, handler_fcc, /* error */ &error))) { if (!EG(exception)) { diff --git a/ext/curl/tests/callable_nullable_option.phpt b/ext/curl/tests/callable_nullable_option.phpt new file mode 100644 index 0000000000000..b43e960348099 --- /dev/null +++ b/ext/curl/tests/callable_nullable_option.phpt @@ -0,0 +1,16 @@ +--TEST-- +Callable options are nullable +--EXTENSIONS-- +curl +--FILE-- + null, +]); + +?> +===DONE=== +--EXPECT-- +===DONE===