|
#1
|
|
Вес репутации:
0
Регистрация: 27.02.2009
Адрес: Москва
Сообщений: 7,247
Сказал(а) спасибо: 574
Спасибок 2,673
в 1,898 сообщениях |
Релиз PHP 5.3.3 -
23.07.2010, 10:06
Команда разработчиков PHP анонсировала PHP 5.3.3. Этот релиз сфокусирован на улучшении стабильности и безопасности ветки PHP 5.3.x, в нем исправлено более 100 ошибок, некоторые из которых относятся к безопасности. Всем пользователям рекомендуется обновиться до этого релиза.
Обратно несовместимые изменения: Методы с таким же именем как и последний элемент класса в пространстве имен не будет больше восприниматься как конструктор. Это изменение не затронет классы вне пространства имен. Здесь нет ударения на переход с PHP 5.2 так как пространства имен были представлены только в PHP 5.3. Улучшения безопасности и исправления в PHP 5.3.3: Переписана функция var_export() с использованием smart_str в обход output buffering, для предотвращения раскрытия данных при возникновении фатальной ошибки. (CVE-2010-2531). Исправлена возможные проблемы уничтожения ресурса в shm_put_var(). Исправлена возможная утечка информации из-за вмешательства оператора XOR. Исправлена возможность повреждения памяти из-за не ожидаемой передачи аргумента по ссылке в момент вызова и последующие затирания памяти через функции обратного вызова. Исправлена возможность повреждения памяти в методе ArrayObject::uasort(). Исправлена возможность повреждения памяти в функции parse_str(). Исправлена возможность повреждения памяти в функции pack(). Исправлена возможность повреждения памяти в функции substr_replace(). Исправлена возможность повреждения памяти в функции addcslashes(). Исправлена возможность переполнения стека внутри функции fnmatch(). Исправлена возможность переполнения буфера dechunking filter. Исправлена возможность произвольного доступа к памяти внутри расширения sqlite. Исправлен формат валидации строк внутри расширения phar. Исправлена обработка сериализации сессионных переменных с определенными префиксными символами. Исправлено удаление ссылки на нулевой указатель при обработке невалидных запросов XML-RPC. Исправлены проблемы десериализации класса SplObjectStorage. Исправлены возможные переполнения буфера в mysqlnd_list_fields, mysqlnd_change_user. Исправлены возможные переполнения буфера при обработки пакетов с ошибками в mysqlnd. Ключевые улучшения в PHP 5.3.3 включают в себя: Обновлен входящий в установочный пакет sqlite, до версии 3.6.23.1 Обновлен входящий в установочный пакет PCRE, до версии 8.02 Менеджер процессов FastCGI (FPM) добавлен в SAPI. Добавлены фильтры потоков расширения mcrypt (портированы из mcrypt_filter). Добавлен фильтр full_special_chars в расширение ext/filter. Исправлено возможность ошибки из-за рекурсивной активации сборщика мусора. Исправлена ошибка №52238 (Падение при выкидывании исключения во время работы функции iterator_to_array). Исправлена ошибка №52041 (Утечка памяти при записи в не инициализированную при возврате из функции). Исправлена ошибка №52060 (Утечка памяти при передаче замыкания в функцию method_exists()). Исправлена ошибка №52001 (Ошибка выделения памяти после использования переменных переменных). Исправлена ошибка №51723 (Заголовок Content-length ограничен 32-битным целым в Apache2 на платформе Windows). Исправлена ошибка №48930 (__COMPILER_HALT_OFFSET__ не корректно работает в PHP >= 5.3). Полный changelog: — Обновлен входящий в установочный пакет sqlite, до версии 3.6.23.1 — Обновлен входящий в установочный пакет PCRE, до версии 8.02 — Добавлена опция JSON_NUMERIC_CHECK в функции json_encode(), которая переводит числа в виде строки в целые числа. — Добавлена функция stream_set_read_buffer, позволяющая установить буфер для операций чтения из потока. — Добавлены фильтры потоков расширения mcrypt (портированы из mcrypt_filter). — Добавлен фильтр full_special_chars в расширение ext/filter. — Добавлена опция числа непереданных пакетов в контексте сокета для функции stream_socket_server(). — Добавлен пятый параметр в функции openssl_encrypt()/openssl_decrypt() (string $iv) для использования ненулевого вектора инициализации. При неявном использовании нулевого вектора инициализации высылается warning. — Добавлена функция openssl_cipher_iv_length(). — Менеджер процессов FastCGI (FPM) добавлен в SAPI. — Добавлены распространенные версии Windows в функцию php_uname и исправлена поддержка неизвестных версий windows. — Добавлена поддержка Berkeley DB 5 в расширение DBA. — Добавлена поддержка копирования в/из массива/файла для расширения pdo_pgsql. — В PDO добавлен метод inTransaction(), со специальной поддержкой Postgres. — Изменены классы в пространствах имен, так что теперь конструктор может быть задан только через __construct. — Сброс ошибочного состояния в PDO::beginTransaction(). — Реализовано FR#51295 (не существующий SQLite3::busyTimeout) — Реализовано FR#35638 (добавлена Adding дата в результаты функции imap_fetch_overview). — Переписана функция var_export() с использованием smart_str в обход output buffering, для предотвращения раскрытия данных при возникновении фатальной ошибки. (CVE-2010-2531). — Исправлены возможные переполнения буфера в mysqlnd_list_fields, mysqlnd_change_user. — Исправлены возможные переполнения буфера при обработки пакетов с ошибками в mysqlnd. — Исправлена очень редкая утечка памяти в mysqlnd, при прикреплении тысяч столбцов. — Исправлена ошибка при вызове несуществующего метод класса, который наследует от PDOStatement и экземпляр которого создан напрямую, в обход создания методами PDO. — Исправлена утечка памяти по ошибке в mcrypt_create_iv на платформе Windows. — Исправлено возможность ошибки из-за рекурсивной активации сборщика мусора. — Исправлена возможные проблемы уничтожения ресурса в shm_put_var(). — Исправлена возможная утечка информации из-за вмешательства оператора XOR. — Исправлена возможность повреждения памяти из-за не ожидаемой передачи аргумента по ссылке в момент вызова и последующие затирания памяти через функции обратного вызова. — Исправлена возможность повреждения памяти в методе ArrayObject::uasort(). — Исправлена возможность повреждения памяти в функции parse_str(). — Исправлена возможность повреждения памяти в функции pack(). — Исправлена возможность повреждения памяти в функции substr_replace(). — Исправлена возможность повреждения памяти в функции addcslashes(). — Исправлена возможность переполнения стека внутри функции fnmatch(). — Исправлена возможность переполнения буфера dechunking filter. — Исправлена возможность произвольного доступа к памяти внутри расширения sqlite. — Исправлен формат валидации строк внутри расширения phar. — Исправлена обработка сериализации сессионных переменных с определенными префиксными символами. — Исправлено удаление ссылки на нулевой указатель при обработке невалидных запросов XML-RPC. — Исправлено переполнение 64-битного целого в функции mhash_keygen_s2k(). — Исправлены проблемы десериализации класса SplObjectStorage. — Исправлена ini настройка mail.log в случае когда не указано имя файла. — Исправлена ошибка №52317 (Ошибка сегментации при использовании функции mail() на rhel 4.x (только 64 бита)). — Исправлена ошибка №52262 (json_decode() не отображал ошибок при декодировании невалидного UTF-8). — Исправлена ошибка №52240 (функция hash_copy() не копировала HMAC ключ, что вызывало неправильные результаты и падения PHP). — Исправлена ошибка №52238 (Падение при выкидывании исключения во время работы функции iterator_to_array). — Исправлена ошибка №52193 (преобразование замыкания в массив приводило к пустому массиву). — Исправлена ошибка №52183 (класс ReflectionFunction отображал неправильного количество аргументов для псевдонимов функций). — Исправлена ошибка №52162 (убраны установленные пользователем переменные заголовков запроса с номерами). — Исправлена ошибка №52160 (Неправильная ошибка уровня E_STRICT при переопределении конструктора). — Исправлена ошибка №52138 (Константы парсящиеся в ini файле как имена секций). — Исправлена ошибка №52115 (mysqli_result::fetch_all возвращает null, а не пустой массив). — Исправлена ошибка №52101 (мусор возвращаемый dns_get_record() в поле 'ipv6' на платформе Windows). — Исправлена ошибка №52082 (сброс character_set_client и character_set_connection после вызова mysqli_change_user()) — Исправлена ошибка №52043 (GD не распознавал последние версии библиотеки libJPEG). — Исправлена ошибка №52041 (Утечка памяти при записи в не инициализированную при возврате из функции). — Исправлена ошибка №52060 (Утечка памяти при передаче замыкания в функцию method_exists()). — Исправлена ошибка №52057 (ReflectionClass не мог обработать класс Closure). — Исправлена ошибка №52051 (обработка регистрозависимости конструкторов старого стиля изменена в 5.3+). — Исправлена ошибка №52037 (Ошибка конкурентная сборки в инсталляционных программах). — Исправлена ошибка №52019 (lcov больше не поддерживает переменную TESTS). — Исправлена ошибка №52010 (Ошибка ограничений open_basedir при команде vacuum). — Исправлена ошибка №52001 (Ошибка выделения памяти после использования переменных переменных). — Исправлена ошибка №51991 (spl_autoload и поддержка *nix с пространствами имен). — Исправлена ошибка №51943 (AIX: несколько файлов выходили за рамки спецификации ANSI). — Исправлена ошибка №51911 (Утечки памяти при вызове ReflectionParameter::getDefaultValue() константного массива). — Исправлена ошибка №51905 (ReflectionParameter не срабатывал если значение по-умолчанию массив с доступом к self:. — Исправлена ошибка №51899 (Ошибка разбора в функции parse_ini_file() когда после пустого значения отсутствует символ перевода строки). — Исправлена ошибка №51844 (checkdnsrr не поддерживал типы любые записей кроме MX). — Исправлена ошибка №51827 (Неправильный warning в случае когда register_shutdown_function вызван с неправильным количеством аргументов). — Исправлена ошибка №51822 (Ошибка сегментации со странным __destruct() для статичных переменных класса). — Исправлена ошибка №51791 (функция constant() прерывала исполнение после неудачной попытки проверить неустановленную константу). — Исправлена ошибка №51732 (__construct или open Fileinfo не работал с NULL). — Исправлена ошибка №51725 (xmlrpc_get_type() возвращал true на некорректные даты). — Исправлена ошибка №51723 (Заголовок Content-length ограничен 32-битным целым в Apache2 на платформе Windows). — Исправлена ошибка №51721 (DOMNodeList и DOMNamedNodeMap помечены как Traversable). — Исправлена ошибка №51712 (Проверка mysql_mysqlnd_read_timeout_long не должна срабатывать на MySQL4). — Исправлена ошибка №51697 (Небезопасные операции в free_storage итераторов SPL вызывали падение во время завершения работы). — Исправлена ошибка №51690 (Phar::setStub проверял регистрозависимый __HALT_COMPILER()). — Исправлена ошибка №51688 (ini per dir падал при неправильном указании document root). — Исправлена ошибка №51671 (некорректная работа imagefill с маленькими изображениями). — Исправлена ошибка №51670 (getColumnMeta вызывал ошибка сегментации при повторном исполнении запроса после вызова nextRowset). — Исправлена ошибка №51647 (Файл сертификата без приватного ключа (приватный ключ в другом файле) не работал). — Исправлена ошибка №51629 (Вводящая в заблуждение сообщение об ошибке CURLOPT_FOLLOWLOCATION). — Исправлена ошибка №51627 (script path не корректно воспринимался). — Исправлена ошибка №51624 (Падение при вызове mysqli_options()). — Исправлена ошибка №51615 (PHP падал при передачи неправильного HTML в SimpleXML). — Исправлена ошибка №51609 (pg_copy_to: неправильные результаты при использовании четвертого аргумента). — Исправлена ошибка №51608 (pg_copy_to: ПРЕДУПРЕЖДЕНИЕ: нестандартное использование \\ в строковом литерале). — Исправлена ошибка №51607 (pg_copy_from не позволял указание схемы в аргументе имени таблицы). — Исправлена ошибка №51605 (Mysqli — зомби ссылки). — Исправлена ошибка №51604 (перенос строки в конце заголовка отображался в начале сообщения). — Исправлена ошибка №51590 (неустановленная константа JSON_ERROR_UTF8). — Исправлена ошибка №51583 (Ошибка шины из-за неправильного расположения в mysqlnd). — Исправлена ошибка №51582 (Не допускайте что UINT64_C когда-либо будет доступен). — Исправлена ошибка №51577 (Неинициализированная ссылка на память в oci_bind_array_by_name). — Исправлена ошибка №51562 (Таймаут запроса в mssql не может быть изменен под отдельный запрос). — Исправлена ошибка №51552 (debug_backtrace() вызывал ошибку сегментации и/или проблемы с памятью). — Исправлена ошибка №51445 (неправильное/медленное определение *RECURSION* в var_dump()). — Исправлена ошибка №51435 (Отсутствующие ifdef / ошибки логики в шифрующем коде могут вызвать ошибки компиляции). — Исправлена ошибка №51424 (функция crypt() зависает после 3-го вызова). — Исправлена ошибка №51394 (Строка ошибки определяется некорректно если обработчик ошибок высылает исключение). — Исправлена ошибка №51393 (DateTime::createFromFormat() не срабатывал если строка с форматом содержит временную зону). — Исправлена ошибка №51347 (утечка памяти mysqli_close / connection). — Исправлена ошибка №51338 (подстановка в URL работает даже в случае установленного параметра use_only_cookies). — Исправлена ошибка №51291 (oci_error не сообщал о последней ошибке, в случае когда вызван дважды). — Исправлена ошибка №51276 (php_load_extension() отсутствует когда не определена HAVE_LIBDL). — Исправлена ошибка №51273 (Свойство Faultstring не существует когда faultstring пуст). — Исправлена ошибка №51269 (zlib.output_compression переписывал заголовок Vary). — Исправлена ошибка №51257 (CURL_VERSION_LARGEFILE неправильно используется после libcurl версии 7.10.1). — Исправлена ошибка №51242 (Пустая конфигурационная настройка mysql.default_port больше не определяется по-умолчанию как 3306, а определяется как 0). — Исправлена ошибка №51237 (падение milter SAPI при запуске). — Исправлена ошибка №51213 (pdo_mssql обрезает значение столбца типа money). — Исправлена ошибка №51190 (ftp_put() возвращает false при успешной передаче). — Исправлена ошибка №51183 (ext/date/php_date.c не компилируется с помощью Sun Studio). — Исправлена ошибка №51176 (Статические вызовы не статических методов срабатывают как $this->). — Исправлена ошибка №51171 (curl_setopt() не выводит каких-либо ошибок или предупреждений в случае когда указана несуществующая опция). — Исправлена ошибка №51128 (imagefill() не работает с большими изображениями). — Исправлена ошибка №51096 ('last day' и 'first day' обрабатываются некорректно при разборе строк с датой). — Исправлена ошибка №51086 (DBA DB4 не работает с Berkeley DB 4.8). — Исправлена ошибка №51062 (DBA DB4 использует ошибочные заголовки и библиотеки). — Исправлена ошибка №51026 (mysqli_ssl_set не работает). — Исправлена ошибка №51023 (filter не поддерживает переполнение целого в GCC 4.4). — Исправлена ошибка №50999 (доступ к нейтральной памяти в dba_fetch()). — Исправлена ошибка №50976 (Авторизация по заголовкам Soap не разрешена). — Исправлена ошибка №50828 (DOMNotation не является дочерним классом DOMNode). — Исправлена ошибка №50810 (propert_exists не работает с приватными свойствами). — Исправлена ошибка №50762 (в режиме WSDL функция обработчик заголовков Soap вызывается только если указана в WSDL). — Исправлена ошибка №50731 (Несогласованные пространства имен отправляются функциям, зарегистрированным с помощью spl_autoload_register). — Исправлена ошибка №50563 (Убран E_WARNING из функции parse_url). — Исправлена ошибка №50578 (некорректная штука(?) в phar.phar). — Исправлена ошибка №50555 (DateTime::sub() позволяет относительные модификации времени). — Исправлена ошибка №50392 (date_create_from_format форсирует 6 чисел для символа форматирования 'u'). — Исправлена ошибка №50383 (Исключения выкинутые в __call / __callStatic не включали в себя файл и строку в трассировочной информации). — Исправлена ошибка №50358 (Ошибка компиляции ext/phar/util.lo). — Исправлена ошибка №50101 (Пересечение имен локальной и глобальной переменных). — Исправлена ошибка №51002 (исправлены возможные повреждения памяти при очень длинных именах). — Исправлена ошибка №49893 (Падение при создании экземпляра Zend_Mail_Storage_Pop3). — Исправлена ошибка №49819 (STDOUT теряет данных с posix_isatty()). — Исправлена ошибка №49778 (DateInterval::format("%a") всегда ноль в случае когда интервал создан из строки в формате ISO). — Исправлена ошибка №49700 (утечки памями в php_date.c при включенном сборщике мусора). — Исправлена ошибка №49576 (фильтру FILTER_VALIDATE_EMAIL требуется обновление). — Исправлена ошибка №49490 (Конфликт префиксов пространств имен XPath). — Исправлена ошибка №49429 (odbc_autocommit не работает). — Исправлена ошибка №49320 (PDO возвращает null если подключение SQLite не удается). — Исправлена ошибка №49234 (mysqli_ssl_set не найден). — Исправлена ошибка №49216 (Рефлексия работает некорректно с классом mysqli). — Исправлена ошибка №49192 (PHP падает в случае когда сборщик мусора запущен на COM object). — Исправлена ошибка №49081 (Ошибка DateTime::diff() если начало в январе и интервал больше 28 дней). — Исправлена ошибка №49059 (DateTime::diff() повторяет предыдущую операцию sub()). — Исправлена ошибка №48983 (Неправильная кодировка DOMDocument:saveHTMLFile). — Исправлена ошибка №48930 (__COMPILER_HALT_OFFSET__ не корректно работает в PHP >= 5.3). — Исправлена ошибка №48902 (База данных переводов времени устарела). — Исправлена ошибка №48781 (Утечка памяти циклического сборщика мусора). — Исправлена ошибка №48601 (xpath() возвращает FALSE для легитимного запроса). — Исправлена ошибка №48361 (SplFileInfo::getPathInfo должен возвращает родительскую директорию). — Исправлена ошибка №48289 (схема quoted-printable функции iconv_mime_encode() сломана). — Исправлена ошибка №47842 (sscanf() не поддерживает 64-битные значения). — Исправлена ошибка №46111 (Некоторые идентификаторы временной зоны не могут быть обработаны). — Исправлена ошибка №45808 (stream_socket_enable_crypto() блокирует и съедает ресурсы процессора). — Исправлена ошибка №43233 (поддержка sasl для ldap на платформе Windows). — Исправлена ошибка №35673 (formatOutput не работает с saveHTML). — Исправлена ошибка №33210 (getimagesize() не удается определить ширину/высоту некоторых файлов JPEG). <!-- Вопросы задаем на форуме, не в ЛС --> |
Ответить |
Опции темы | |
Опции просмотра | |
|
|