Разработчики проекта PHP опубликовали уведомление (http://www.php.net/index.php#id2011-08-22-1), в котором попросили пользователей повременить с обновлением своих систем до вышедшей (http://www.opennet.me/opennews/art.shtml?num=31537) несколько дней назад новой версии PHP 5.3.7 и дождаться выхода PHP 5.3.8, который будет доступен через несколько дней. Причиной стала проблема (https://bugs.php.net/bug.php?id=55439) безопасности, вызванная ошибкой в обновленной реализации функции crypt(), которая в версии 5.3.7 при запуске с явным указанием salt, вместо хэша MD5 возвращает только значение salt. Проблема проявляется только для хэшей MD5 и не затрагивает хэши DES и BLOWFISH.URL: http://www.php.net/index.php#id2011-08-22-1
Новость: http://www.opennet.me/opennews/art.shtml?num=31555
Не думал, что в PHP _вообще_ нет тестирования качества. Ладно какой-то трудноуловимый баг пропустить, но не проверить работу очевидного изменения после принятия патча, это нонсенс.
> Не думал, что в PHP _вообще_ нет тестирования качества.почему же «нет»? на юзерах и тестируют. на то оно и похапэ.
в linux kernel - ровно так же тестируют на хомячках.
> в linux kernel - ровно так же тестируют на хомячках.Процессоры интел точно так тестируются на хомячках и называются целероны :-))
В основном дереве исходников PHP есть unit test'ы - и их там очень много. Как я понял, проблема в том, что некоторые недостатки кода, для которых уже есть тесты, сознательно остаются не исправленными в определенных релизах и/или при определенных вариантах сборки, что и привело к тому, что еще один уже не сознательно не-прошедший тест попросту не заметили:http://news.php.net/php.internals/54739
Сейчас разработчики подняли дискуссию о том что им надо бы изменить ожидаемый результат части тестов на XFAIL (expected failure) или/и временно убрать часть тестов из основного дерева (перенести их в описания соответствующих багов), чтобы новые сбои были более заметны. Конечно, это лучше было сделать раньше...
жесть! никогда не сомневался в кривости разрабов php, но чтобы так облажаться это надо уметь.
- strlcat(passwd, "$", 1);
+ strcat(passwd, "$");
-------как "так"? Может принимающий комиты пропустил, может код намерено в таком виде запостили. Запишитесь в тестеры, они давно уже народ набирают.
Как знал, что не стоит торопиться с обновлением. Может я ошибаюсь, но кажется, такое уже с ними было
head:~ # php -v
PHP 5.3.7 (cli)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologiesтолько вчера обновился же
Уже с патчем. (показал всем язык). :)
http://www.freshports.org/commit.php?category=lang&port=php5...
remi оперативно выпустил апдейт:
Updating:
php x86_64 5.3.7-2.el5.remi remi 2.8 M
...