Skip to content

Commit 41db5f7

Browse files
committed
Fixed reference-counting in zend_parse_arg_str_weak()
1 parent dcf7592 commit 41db5f7

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

Zend/zend_API.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -531,12 +531,13 @@ ZEND_API int ZEND_FASTCALL zend_parse_arg_str_weak(zval *arg, zend_string **dest
531531
zval rv;
532532
zval *z = Z_OBJ_HANDLER_P(arg, get)(arg, &rv);
533533

534-
Z_ADDREF_P(z);
535534
if (Z_TYPE_P(z) != IS_OBJECT) {
536-
zval_dtor(arg);
537-
ZVAL_NULL(arg);
538-
if (!zend_make_printable_zval(z, arg)) {
535+
zval_ptr_dtor(arg);
536+
if (Z_TYPE_P(z) == IS_STRING) {
539537
ZVAL_COPY_VALUE(arg, z);
538+
} else {
539+
ZVAL_STR(arg, zval_get_string_func(z));
540+
zval_ptr_dtor(z);
540541
}
541542
*dest = Z_STR_P(arg);
542543
return 1;

0 commit comments

Comments
 (0)