-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
It appears that the loaded images remain in memory even when the FastImageSize
object is unset.
PHP 8.1.13
Zend Engine v4.1.13
Zend OPcache v8.1.13
Loaded extensions:
zend_extension=opcache.so
extension=pdo.so
extension=pdo_pgsql.so
extension=pgsql.so
extension=xml.so
extension=calendar.so
extension=ctype.so
extension=curl.so
extension=dom.so
extension=exif.so
extension=ffi.so
extension=fileinfo.so
extension=ftp.so
extension=gd.so
extension=gettext.so
extension=iconv.so
extension=imagick.so
extension=intl.so
extension=mbstring.so
extension=phar.so
extension=posix.so
extension=readline.so
extension=shmop.so
extension=simplexml.so
extension=sockets.so
extension=sysvmsg.so
extension=sysvsem.so
extension=sysvshm.so
extension=tokenizer.so
extension=xmlreader.so
extension=xmlwriter.so
extension=xsl.so
extension=zip.so
Code example that demonstrates the leak:
for ($i = 0; $i < ENOUGH_TO_EXCEED_RAM_LIMIT; $i++) {
$mem = memory_get_usage();
$FastImageSize = new \FastImageSize\FastImageSize();
$path = "path/to/image.jpg";
$imageSize = $FastImageSize->getImageSize($filePath);
unset($FastImageSize);
unset($imageSize);
echo "leak: " . memory_get_usage() - $mem . " bytes<br>";
}
This code terminates with the following fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 790528 bytes) in /var/www/vendor/marc1706/fast-image-size/lib/FastImageSize.php on line 189
Metadata
Metadata
Assignees
Labels
No labels