summaryrefslogtreecommitdiff
path: root/ext/standard/var.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r--ext/standard/var.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c
index acb1d40c01..76d92a5fd3 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -1080,6 +1080,11 @@ PHP_FUNCTION(unserialize)
in case nesting calls to unserialize */
var_push_dtor(&var_hash, return_value);
+ /* Ensure return value is a value */
+ if (Z_ISREF_P(return_value)) {
+ zend_unwrap_reference(return_value);
+ }
+
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
if (class_hash) {
zend_hash_destroy(class_hash);