diff options
-rw-r--r-- | Zend/zend_API.c | 2 | ||||
-rw-r--r-- | Zend/zend_object_handlers.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index c1b501b0b7..df11bdbe8f 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -3472,6 +3472,8 @@ ZEND_API int zend_update_static_property(zend_class_entry *scope, char *name, in (*property)->value = value->value; if (Z_REFCOUNT_P(value) > 0) { zval_copy_ctor(*property); + } else { + efree(value); } } else { zval *garbage = *property; diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index eae47d9c5a..c40a458238 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -437,6 +437,8 @@ static void zend_std_write_property(zval *object, zval *member, zval *value TSRM (*variable_ptr)->value = value->value; if (Z_REFCOUNT_P(value) > 0) { zval_copy_ctor(*variable_ptr); + } else { + efree(value); } zval_dtor(&garbage); } else { |