summaryrefslogtreecommitdiff
path: root/ext/curl
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2021-02-16 14:20:45 +0100
committerNikita Popov <nikita.ppv@gmail.com>2021-02-16 14:20:45 +0100
commitb63ea1047a5c130231cec5571861f1dcdf63a063 (patch)
tree0fff21141ba410ca439833f64b41e86a1d22e2b4 /ext/curl
parentcb9785add1bc8031531c2870c267e6a72efae6af (diff)
downloadphp-git-b63ea1047a5c130231cec5571861f1dcdf63a063.tar.gz
Mark resource-like objects as non-comparable
As these hold on to some internal resource, there can't be two "equal" objects with different identity. Make sure the lack of public properties doesn't result in these being treated as always equal.
Diffstat (limited to 'ext/curl')
-rw-r--r--ext/curl/interface.c1
-rw-r--r--ext/curl/multi.c1
-rw-r--r--ext/curl/share.c1
3 files changed, 3 insertions, 0 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index 2fd6ec1454..808785c445 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -1200,6 +1200,7 @@ PHP_MINIT_FUNCTION(curl)
curl_object_handlers.get_constructor = curl_get_constructor;
curl_object_handlers.clone_obj = curl_clone_obj;
curl_object_handlers.cast_object = curl_cast_object;
+ curl_object_handlers.compare = zend_objects_not_comparable;
curl_multi_register_class(class_CurlMultiHandle_methods);
curl_share_register_class(class_CurlShareHandle_methods);
diff --git a/ext/curl/multi.c b/ext/curl/multi.c
index e717fd5d9e..3b329088c2 100644
--- a/ext/curl/multi.c
+++ b/ext/curl/multi.c
@@ -603,4 +603,5 @@ void curl_multi_register_class(const zend_function_entry *method_entries) {
curl_multi_handlers.get_constructor = curl_multi_get_constructor;
curl_multi_handlers.clone_obj = NULL;
curl_multi_handlers.cast_object = curl_cast_object;
+ curl_multi_handlers.compare = zend_objects_not_comparable;
}
diff --git a/ext/curl/share.c b/ext/curl/share.c
index 58135acdb5..6ab0f92ba5 100644
--- a/ext/curl/share.c
+++ b/ext/curl/share.c
@@ -176,4 +176,5 @@ void curl_share_register_class(const zend_function_entry *method_entries) {
curl_share_handlers.free_obj = curl_share_free_obj;
curl_share_handlers.get_constructor = curl_share_get_constructor;
curl_share_handlers.clone_obj = NULL;
+ curl_share_handlers.compare = zend_objects_not_comparable;
}