Skip to content

Commit 7be2637

Browse files
committed
Fixed memory leak introduced by 7cb5bdf
1 parent 2283b6f commit 7be2637

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

ext/standard/var_unserializer.re

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ static zend_always_inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTab
391391
ZVAL_UNDEF(&key);
392392

393393
if (!php_var_unserialize_internal(&key, p, max, NULL)) {
394-
zval_dtor(&key);
394+
zval_ptr_dtor(&key);
395395
return 0;
396396
}
397397

@@ -421,7 +421,7 @@ numeric_key:
421421
data = zend_hash_add_new(ht, Z_STR(key), &d);
422422
}
423423
} else {
424-
zval_dtor(&key);
424+
zval_ptr_dtor(&key);
425425
return 0;
426426
}
427427
} else {
@@ -435,7 +435,7 @@ string_key:
435435
size_t unmangled_prop_len;
436436

437437
if (UNEXPECTED(zend_unmangle_property_name_ex(Z_STR(key), &unmangled_class, &unmangled_prop, &unmangled_prop_len) == FAILURE)) {
438-
zval_dtor(&key);
438+
zval_ptr_dtor(&key);
439439
return 0;
440440
}
441441

@@ -465,7 +465,7 @@ string_key:
465465
new_key = unmangled;
466466
}
467467
zend_string_release(Z_STR(key));
468-
Z_STR(key) = new_key;
468+
ZVAL_STR(&key, new_key);
469469
} else {
470470
zend_string_release(unmangled);
471471
}
@@ -485,13 +485,13 @@ string_key:
485485
convert_to_string(&key);
486486
goto string_key;
487487
} else {
488-
zval_dtor(&key);
488+
zval_ptr_dtor(&key);
489489
return 0;
490490
}
491491
}
492492

493493
if (!php_var_unserialize_internal(data, p, max, var_hash)) {
494-
zval_dtor(&key);
494+
zval_ptr_dtor(&key);
495495
return 0;
496496
}
497497

@@ -505,7 +505,7 @@ string_key:
505505
var_push_dtor(var_hash, data);
506506
}
507507

508-
zval_dtor(&key);
508+
zval_ptr_dtor(&key);
509509

510510
if (elements && *(*p-1) != ';' && *(*p-1) != '}') {
511511
(*p)--;

0 commit comments

Comments
 (0)