You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Memory leak in ArrayIterator when manually calling __construct() #8366
<?php$it = new \ArrayIterator();
$it->next();
$it->__construct([]);
PHP will report a memory leak ("Warning: Leaked 1 hashtable iterators in Unknown on line 0"):
==271560== Memcheck, a memory error detector
==271560== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==271560== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==271560== Command: sapi/cli/php test.php
==271560==
Warning: Leaked 1 hashtable iterators in Unknown on line 0
==271560==
==271560== HEAP SUMMARY:
==271560== in use at exit: 0 bytes in 0 blocks
==271560== total heap usage: 14,371 allocs, 14,371 frees, 2,141,349 bytes allocated
==271560==
==271560== All heap blocks were freed -- no leaks are possible
==271560==
==271560== For lists of detected and suppressed errors, rerun with: -s
==271560== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Ugh, IMO we need to emit warnings or exceptions when rewind() has been skipped for most built-in iterators -- this would prevent at least part of this bug from happening.
Activity
morrisonlevi commentedon Apr 13, 2022
Ugh, IMO we need to emit warnings or exceptions when
rewind()has been skipped for most built-in iterators -- this would prevent at least part of this bug from happening.Fix phpGH-8366: ArrayIterator may leak when calling __construct()
Fix GH-8366: ArrayIterator may leak when calling __construct()
Merge branch 'PHP-8.0' into PHP-8.1
Merge branch 'PHP-8.1'