From 54fa0a69f8c5e9a97c46e74c6bf7bab1b2b02465 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 2 Feb 2021 10:31:16 +0100 Subject: Add missing derefs in CurlFile As pointed out on GH-6456. --- ext/curl/interface.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 7faf439ce1..343e539777 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -2207,6 +2207,7 @@ static inline int build_mime_structure_from_hash(php_curl *ch, zval *zpostfields #endif prop = zend_read_property(curl_CURLFile_class, current, "name", sizeof("name")-1, 0, &rv); + ZVAL_DEREF(prop); if (Z_TYPE_P(prop) != IS_STRING) { php_error_docref(NULL, E_WARNING, "Invalid filename for key %s", ZSTR_VAL(string_key)); } else { @@ -2217,10 +2218,12 @@ static inline int build_mime_structure_from_hash(php_curl *ch, zval *zpostfields } prop = zend_read_property(curl_CURLFile_class, current, "mime", sizeof("mime")-1, 0, &rv); + ZVAL_DEREF(prop); if (Z_TYPE_P(prop) == IS_STRING && Z_STRLEN_P(prop) > 0) { type = Z_STRVAL_P(prop); } prop = zend_read_property(curl_CURLFile_class, current, "postname", sizeof("postname")-1, 0, &rv); + ZVAL_DEREF(prop); if (Z_TYPE_P(prop) == IS_STRING && Z_STRLEN_P(prop) > 0) { filename = Z_STRVAL_P(prop); } -- cgit v1.2.1