com php-src: Fixed destructive assignment: ext/soap/php_packe t_soap.c
| From: | Dmitry Stogov | Date: | Thu, 15 May 2014 08:29:52 +0000 |
| Subject: | com php-src: Fixed destructive assignment: ext/soap/php_packe t_soap.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-78368@lists.php.net to get a copy of this message | ||
Commit: 3d2b1753393b78c37755a54be113d9201ad5359d
Author: Dmitry Stogov <dmitry@zend.com> Thu, 15 May 2014 12:29:52 +0400
Parents: 540070a999094bff64123bff365688699d6e5a18
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=3d2b1753393b78c37755a54be113d9201ad5359d
Log:
Fixed destructive assignment
Changed paths:
M ext/soap/php_packet_soap.c
Diff:
diff --git a/ext/soap/php_packet_soap.c b/ext/soap/php_packet_soap.c
index ce505b4..07bda29 100644
--- a/ext/soap/php_packet_soap.c
+++ b/ext/soap/php_packet_soap.c
@@ -380,9 +380,13 @@ int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size,
sdlFunction
zend_hash_internal_pointer_reset(Z_ARRVAL_P(return_value));
tmp = zend_hash_get_current_data(Z_ARRVAL_P(return_value));
- if (Z_REFCOUNTED_P(tmp)) Z_ADDREF_P(tmp);
- zval_dtor(return_value);
- ZVAL_COPY_VALUE(return_value, tmp);
+ if (!Z_REFCOUNTED_P(return_value)) {
+ ZVAL_COPY_VALUE(return_value, tmp);
+ } else {
+ zend_refcounted *garbage = Z_COUNTED_P(return_value);
+ ZVAL_COPY(return_value, tmp);
+ _zval_dtor_func(garbage ZEND_FILE_LINE_CC);
+ }
}
}