suhosin_bug

После переустановки PHP 5.2.10 столкнулся я с такой проблемой как «linked list corrupt on efree () — heap corruption detected» при использовании библиотеки phpQuery, а также «Segmentation fault» в CLI версии свежеустановленного PHP.

Ошибка «linked list corrupt on efree () — heap corruption detected» проявлялась только в одном месте, и связана была с DOM модулем, как мне казалось. До переустановки я не юзал phpQuery в продакшене, поэтому не мог сказать однозначно повлияла ли это переустановка, или так и было бы с ошибкой.

При запуске любого скрипта в CLI режиме, было нечто подобное:

php -f /www/script.php
Segmentation fault

Решение проблемы с Segmentation fault в CLI

Погуглив немного, не нашел ничего путного и запостил на Пыху топик о своей проблеме, пару дней мы думали по этой теме, предлагались разные решения и побороли в первый день «Segmentation fault» в CLI, путем упорядочивания PHP модулей (спасибо пользователю OFF), сейчас у меня так:

extension=mbstring.so
extension=simplexml.so
extension=spl.so
extension=mysqli.so
extension=mysql.so
extension=session.so
extension=mcrypt.so
extension=gd.so
extension=json.so
extension=ctype.so
extension=iconv.so
extension=hash.so
extension=curl.so
extension=zlib.so
extension=imagick.so
extension=ffmpeg.so
extension=sphinx.so
extension=pcre.so
extension=memcache.so
extension=memcached.so
extension=dom.so

С тех пор CLI работал исправно и работает до сих пор.

Решение проблемы с heap corruption detected в phpQuery

Признаюсь, я грешил на PHP-модуль «php5-dom», однако проблема оказалась не в нем. Ошибка была вида:

[Thu Sep 17 01:48:23 2009] [error] [client 93.111.111.111] ALERT — linked list corrupt on efree () — heap corruption detected (attacker '93.111.111.111', file '/path/to/kinsburg/path/to/libs/phpquery.php', line 5689), referer: http://kinsburg.ru/path/to/admin/path/to/parser/

где, 93.111.111.111 — ip-адрес моего локального компьютера (аля клиент)

Решение оказалось совсем для меня не очевидным, во всем оказался виноват «Suhosin Patch», который нужен для обеспечения безопасности. Я просто переустановил PHP, но в этот раз отключил Suhosin.

На эту мысль меня натолкнул пост пользователя OFF с Пыха.ру, за что ему огромное спасибо! Были еще варианты решения этой проблемы, но они не венчались успехом.

В данный момент, я планирую включить снова Suhosin Patch, потомучто запускать тот злосчастный скрипт мне необходимо всего раз 3-6 месяцев, а за это время может возникнут патчи бага, либо найдется куда более продуктивное решение.


Комментарии (8) на запись «PHP. heap corruption detected в phpQuery и Segmentation fault в PHP CLI»

» Трекбеки скрыты, показать их?
  1. agat | 21.09.2009 в 17:52

    сухосина фтопку, скрипты на php либо самостоятельно, либо тотальная проверка с оладкой,всех переменных всех методов и классов, с максимальным уровнем предупреждений и исправлением любой баги,любой пустой переменной,с полным осознанием того что написано в скрипте, что он делает и для чего нужен. Во всех подозрительных местах либо написать свой вариант (часто получается изящьнее), либо переименовать переменные (переименовать-переменные =D )

    исключить из скрипта символы подавления @ ошибок.

    переписать проверки входных данных (если такие есть)

    магические кавычки — фтопку только мешают,использовать placeholderы для обращения к базе...

    безопасность-безопасность, не надо писать или использовать дырявые скрипты тогда и suhosin не нужен будет...

  2. adw0rd | 22.09.2009 в 09:42

    agat, ага, но не всегда свой код используется (WP, Drupal, etc).

  3. epsyl | 25.09.2009 в 00:23

    кстати, упорядочивание пхп-экстеншнов — херь полная

    единственное, spl надо перед мусклем ставить, а в остальном — бред, по-моему

  4. adw0rd | 25.09.2009 в 09:46

    epsyl, ага, по твоему. Есть целые патчи сортирующие экстеншены в правильном порядке.

  5. agat | 05.10.2009 в 19:59

    Расстановка важна — 100%

    epsyl — попробуй на досуге поменять местами, все рухнет...

    З.Ы. я пробовал =)

  6. малин | 24.10.2009 в 20:56

    интересно решил проблему

  7. Pandora | 18.12.2009 в 13:19

    php-fpm.anight.org/downloads/freebsd-port/

  8. adw0rd | 18.12.2009 в 15:46

    Pandora, что вы этим хотели сказать?

Оставить комментарий


cкачать бесплатно фильмы