Skip to content

Commit f3c24ec

Browse files
committed
Merge branch 'PHP-7.4'
* PHP-7.4: Fix #75673: SplStack::unserialize() behavior
2 parents 0d913f9 + b761997 commit f3c24ec

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

ext/spl/spl_dllist.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,6 +1180,12 @@ SPL_METHOD(SplDoublyLinkedList, unserialize)
11801180
return;
11811181
}
11821182

1183+
while (intern->llist->count > 0) {
1184+
zval tmp;
1185+
spl_ptr_llist_pop(intern->llist, &tmp);
1186+
zval_ptr_dtor(&tmp);
1187+
}
1188+
11831189
s = p = (const unsigned char*)buf;
11841190
PHP_VAR_UNSERIALIZE_INIT(var_hash);
11851191

ext/spl/tests/bug75673.phpt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
--TEST--
2+
Bug #75673 (SplStack::unserialize() behavior)
3+
--FILE--
4+
<?php
5+
$stack = new SplStack();
6+
$stack->push("one");
7+
$stack->push("two");
8+
9+
$serialized = $stack->serialize();
10+
var_dump($stack->count());
11+
$stack->unserialize($serialized);
12+
var_dump($stack->count());
13+
$stack->unserialize($serialized);
14+
var_dump($stack->count());
15+
?>
16+
--EXPECT--
17+
int(2)
18+
int(2)
19+
int(2)

0 commit comments

Comments
 (0)