From 36a789e68f881abd57659e88cd79e8bcd7b37920 Mon Sep 17 00:00:00 2001 From: Robert Coleman Date: Tue, 28 Jan 2014 22:35:37 +1300 Subject: [PATCH 1/2] KB is not a valid suffix for PHP memory_limit http://nz1.php.net/manual/en/faq.using.php#faq.using.shorthandbytes --- lib/Magento/Image/Adapter/Gd2.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Magento/Image/Adapter/Gd2.php b/lib/Magento/Image/Adapter/Gd2.php index 91d72e8b0c7b1..1bba65eadc4f0 100644 --- a/lib/Magento/Image/Adapter/Gd2.php +++ b/lib/Magento/Image/Adapter/Gd2.php @@ -112,7 +112,7 @@ protected function _getImageNeedMemorySize($file) } /** - * Converts memory value (e.g. 64M, 129KB) to bytes. + * Converts memory value (e.g. 64M, 129K) to bytes. * Case insensitive value might be used. * * @param string $memoryValue @@ -124,7 +124,7 @@ protected function _convertToByte($memoryValue) return (int)$memoryValue * pow(1024, 3); } elseif (stripos($memoryValue, 'M') !== false) { return (int)$memoryValue * 1024 * 1024; - } elseif (stripos($memoryValue, 'KB') !== false) { + } elseif (stripos($memoryValue, 'K') !== false) { return (int)$memoryValue * 1024; } From f26a6c54ec3d76a32a89e05465785c1f033cdda4 Mon Sep 17 00:00:00 2001 From: Robert Coleman Date: Tue, 28 Jan 2014 22:39:52 +1300 Subject: [PATCH 2/2] support -1 value (no limit) PHP memory_limit http://nz1.php.net/manual/en/ini.core.php#ini.memory-limit --- lib/Magento/Image/Adapter/Gd2.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/Magento/Image/Adapter/Gd2.php b/lib/Magento/Image/Adapter/Gd2.php index 1bba65eadc4f0..ef910372438a4 100644 --- a/lib/Magento/Image/Adapter/Gd2.php +++ b/lib/Magento/Image/Adapter/Gd2.php @@ -80,9 +80,14 @@ public function open($filename) */ protected function _isMemoryLimitReached() { - $limit = $this->_convertToByte(ini_get('memory_limit')); - $requiredMemory = $this->_getImageNeedMemorySize($this->_fileName); - return (memory_get_usage(true) + $requiredMemory) > $limit; + $memory_limit = ini_get('memory_limit'); + if ($memory_limit == -1) { + return false; + } else { + $limit = $this->_convertToByte($memory_limit); + $requiredMemory = $this->_getImageNeedMemorySize($this->_fileName); + return (memory_get_usage(true) + $requiredMemory) > $limit; + } } /**