diff options
-rw-r--r-- | ext/wddx/wddx.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c index 7ecdc1bff9..4516c8e2e6 100644 --- a/ext/wddx/wddx.c +++ b/ext/wddx/wddx.c @@ -618,10 +618,12 @@ static void _php_wddx_deserialize(zval *packet, zval *return_value) XML_ParserFree(parser); - wddx_stack_top(&stack, (void**)&ent); - *return_value = *(ent->data); - zval_copy_ctor(return_value); - + if (!wddx_stack_is_empty(&stack)) { + wddx_stack_top(&stack, (void**)&ent); + *return_value = *(ent->data); + zval_copy_ctor(return_value); + } + wddx_stack_destroy(&stack); } /* }}} */ |