php выделяет огромное количество памяти для эха - PullRequest
0 голосов
/ 20 марта 2019

У меня есть код, который использует gmagick для рендеринга изображений. Он работает на машинах Ubuntu 16.06 Php5.6 (Apache2).

Код отображает необработанные данные изображения и вместе с заголовком png, таким образом, он показывает изображения.

Я установил такую ​​же конфигурацию на новом сервере. На новом сервере тот же код работает для случайных изображений, но для отдельного конкретного изображения он завершается неудачно, когда выводятся необработанные данные изображения, созданные gmagick, потому что php пытается выделить огромное пространство для строкового эха. (попытался выделить 1864914417 байт). Строка, которая должна повторить это 250Kb.

Похоже, что для определенного изображения он ошибочно принимает строку 250 КБ и пытается выделить огромный буфер.

Единственная разница между серверами в том, что старый - php5.6.37, а новый - php5.6.40.

Что может вызвать это?

Кстати, буферизация вывода включена на старом и новом серверах. Phpinfo обоих одинаков.

1 Ответ

1 голос
/ 20 марта 2019

Это звучит как ошибка в конкретной версии программного обеспечения, которую вы используете, которая проявляется в этом отдельном образе. Вам следует попытаться выполнить обновление до последней стабильной версии программного обеспечения для обработки изображений.

Звучит как ошибка повреждения памяти (например, переполнение буфера). Проблема может исчезнуть, если вы каким-либо образом измените изображение в другой системе, например измените размер на несколько пикселей или измените уровень сжатия.

Ошибки переполнения буфера могут быть уязвимостями безопасности, поэтому попробуйте обновить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...