From: Stanislav Malyshev Date: Sun, 11 Aug 2013 00:49:52 +0000 (-0700) Subject: Merge branch 'pull-request/325' into PHP-5.5 X-Git-Tag: php-5.5.2~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=473d66553d64f1b76ba969eabb105b1fdc7497b1;p=php Merge branch 'pull-request/325' into PHP-5.5 * pull-request/325: Add schema default/fixed value support --- 473d66553d64f1b76ba969eabb105b1fdc7497b1 diff --cc NEWS index 10697a03d4,969780e9ce..c64908de5e --- a/NEWS +++ b/NEWS @@@ -1,168 -1,239 +1,173 @@@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? 20??, PHP 5.5.0 Beta 4 - -- Zip: - . Fixed bug #64342 (ZipArchive::addFile() has to check for file existence). - (Anatol) - -11 Apr 2013, PHP 5.5.0 Beta 3 +?? ??? 2013, PHP 5.5.3 - Core: - . Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: - segfault). (Laruence) - . Fixed bug #64565 (copy doesn't report failure on partial copy). (Remi) - . Fixed bug #64555 (foreach no longer copies keys if they are interned). - (Nikita Popov) - . Fixed bugs #47675 and #64577 (fd leak on Solaris) - -- CURL: - . Added CURL_WRAPPERS_ENABLED constant. (Laruence) + . Fixed bug #62691 (solaris sed has no -i switch). (Chris Jones) + . Fixed bug #61345 (CGI mode - make install don't work). (Michael Heimpold) + . Fixed bug #61268 (--enable-dtrace leads make to clobber + Zend/zend_dtrace.d) (Chris Jones) -- DateTime - . Fixed bug #54567 (DateTimeZone serialize/unserialize) (Lonny - Kapelushnik, Derick) - . Fixed bug #60774 (DateInterval::format("%a") is always zero when an - interval is created using the createFromDateString method) (Lonny - Kapelushnik, Derick) ++- DOM: ++ . Added flags option to DOMDocument::schemaValidate() and ++ DOMDocument::schemaValidateSource(). Added LIBXML_SCHEMA_CREATE flag. ++ (Chris Wright) + -- General improvements: - . Drop support for bison < 2.4 when building PHP from GIT source. - (Laruence) +- Sessions: + . Implemented strict sessions RFC (https://wiki.php.net/rfc/strict_sessions) + which protects against session fixation attacks and session collisions. + (Yasuo Ohgaki) + . Fixed possible buffer overflow under Windows. Note: Not a security fix. + (Yasuo) + . Changed session.auto_start to PHP_INI_PERDIR. (Yasuo) -- Fileinfo: - . Upgraded libmagic to 5.14. (Anatol) +- Pgsql: + . Fixed bug #62978 (Disallow possible SQL injections with pg_select()/pg_update() + /pg_delete()/pg_insert()). (Yasuo) -- OPcache - . Added opcache_invalidate() function. (Dmitry) - . Added ability to disable opcode cahing for current request by setting - opcache.enable=0. (Dmitry) - . Allowed comments in blacklist files started from ';'. (Remi) - . Allowed wilcards in opcache.blacklist_filename. (Remi) - . Fixed opcache reload condition. Now OPcache is not reloaded if it's full, - but wasted memory is less than opcache.max_wasted_percentage. (Dmitry) - . Fixed incorrect file path validation. (Dmitry). - . Optimizer: Fixed Control Flow Graph construction. (Dmitry) - . Optimizer: numeric string constants used as array indeces have to be - converted to long at compile time. (Dmitry) - . Optimizer: Fixed deltion of used literal. (Laruence, Dmitry) - -28 Mar 2013, PHP 5.5.0 Beta 2 +?? ??? 2013, PHP 5.5.2 - Core: - . Fixed bug #64544 (Valgrind warnings after using putenv). (Laruence) - . Fixed bug #64515 (Memoryleak when using the same variablename 2times in - function declaration). (Laruence) - . Fixed bug #64503 (Compilation fails with error: conflicting types for - 'zendparse'). (Laruence) - . Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11). - (Dmitry, Laruence) - . Fixed bug #64523, allow XOR in php.ini. (Dejan Marjanovic, Lars) - -- Opcache: - . Fixed bug # 64490 (struct flock undefined on FreeBSD). (Joe Watkins) + . Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference + fails). (Laruence) + . Fixed value of FILTER_SANITIZE_FULL_SPECIAL_CHARS constant (previously was + erroneously set to FILTER_SANITIZE_SPECIAL_CHARS value). (Andrey + avp200681 gmail com). + . Fixed bug #65304 (Use of max int in array_sum). (Laruence) + . Fixed bug #65291 (get_defined_constants() causes PHP to crash in a very + limited case). (Arpad) -21 Mar 2013, PHP 5.5.0 Beta 1 +- OPcache: + . Added opcache.restrict_api configuration directive that may limit + usage of OPcahce API functions only to patricular script(s). (Dmitry) + . Added support for glob symbols in blacklist entries (?, *, **). + (Terry Elison, Dmitry) + . Fixed bug #65338 (Enabling both php_opcache and php_wincache AVs on + shutdown). (Dmitry) -- Core: - . Added Zend Opcache extension and enable building it by default. - More details here: https://wiki.php.net/rfc/optimizerplus. (Dmitry) - . Added array_column function which returns a column in a multidimensional - array. https://wiki.php.net/rfc/array_column. (Ben Ramsey) - . Fixed bug #64354 (Unserialize array of objects whose class can't - be autoloaded fail). (Laruence) - . Added support for changing the process's title in CLI/CLI-Server SAPIs. - The implementation is more robust that the proctitle PECL module. More - details here: https://wiki.php.net/rfc/cli_process_title. (Keyur) - . Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT']). - (Anatol) - . Added support for non-scalar Iterator keys in foreach - (https://wiki.php.net/rfc/foreach-non-scalar-keys). (Nikita Popov) +- PDO_mysql: + . Fixed bug #65299 (pdo mysql parsing errors). (Johannes) -- mysqlnd - . Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc - for stmt->param_bind). (Andrey) +- Phar: + . Fixed bug #65028 (Phar::buildFromDirectory creates corrupt archives for + some specific contents). (Stas) -- DateTime - . Fixed bug #53437 (Crash when using unserialized DatePeriod instance). - (Gustavo, Derick, Anatol) - . Fixed bug #62852 (Unserialize Invalid Date causes crash). (Anatol) +- SOAP: + . Fixed bug #65018 (SoapHeader problems with SoapServer). (Dmitry) - SPL: - . Implement FR #48358 (Add SplDoublyLinkedList::add() to insert an element - at a given offset). (Mark Baker, David Soria Parra) - -- Zip: - . Bug #64452 (Zip crash intermittently). (Anatol) + . Fixed bug #65328 (Segfault when getting SplStack object Value). (Laruence) + . Added RecursiveTreeIterator setPostfix and getPostifx methods. (Joshua + Thijssen) + . Fixed bug #61697 (spl_autoload_functions returns lambda functions + incorrectly). (Laruence) -07 Mar 2013, PHP 5.5.0 Alpha 6 +- Streams: + . Fixed bug #65268 (select() implementation uses outdated tick API). (Anatol) -- Core: - . Fixed bug #61025 (__invoke() visibility not honored). (Laruence) - . Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice). - (Stas) +- Pgsql: + . Fixed bug #65336 (pg_escape_literal/identifier() scilently returns false). + (Yasuo) -- Sockets: - . Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault). - (Gustavo) +18 Jul 2013, PHP 5.5.1 -- PCRE: - . Merged PCRE 8.32. (Anatol) +- Core: + . Fixed bug #65254 (Exception not catchable when exception thrown in autoload + with a namespace). (Laruence) + . Fixed bug #65088 (Generated configure script is malformed on OpenBSD). + (Adam) + . Fixed bug #65108 (is_callable() triggers Fatal Error). + (David Soria Parra, Laruence) + . Fixed bug #65035 (yield / exit segfault). (Nikita) + . Fixed bug #65161 (Generator + autoload + syntax error = segfault). (Nikita) + . hex2bin() raises E_WARNING for invalid hex string. (Yasuo) + . Fixed bug #65226 (chroot() does not get enabled). (Anatol) -- DateTime: - . Fixed bug #64359 (strftime crash with VS2012). (Anatol) +- OPcache + . Fixed bug #64827 (Segfault in zval_mark_grey (zend_gc.c)). (Laruence) + . OPcache must be compatible with LiteSpeed SAPI (Dmitry) -- SNMP: - . Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly). - (Boris Lytochkin) +- CGI: + . Fixed Bug #65143 (Missing php-cgi man page). (Remi) -21 Feb 2013, PHP 5.5.0 Alpha 5 +- CLI server: + . Fixed bug #65066 (Cli server not responsive when responding with 422 http + status code). (Adam) -- Core: - . Implemented FR #64175 (Added HTTP codes as of RFC 6585). (Jonh Wendell) - . Fixed bug #64135 (Exceptions from set_error_handler are not always - propagated). (Laruence) - . Fixed bug #63830 (Segfault on undefined function call in nested generator). - (Nikita Popov) - . Fixed bug #60833 (self, parent, static behave inconsistently - case-sensitive). (Stas, mario at include-once dot org) - . Implemented FR #60524 (specify temp dir by php.ini). (ALeX Kazik). - . Fixed bug #64142 (dval to lval different behavior on ppc64). (Remi) - . Added ARMv7/v8 versions of various Zend arithmetic functions that are - implemented using inline assembler (Ard Biesheuvel) - . Fix undefined behavior when converting double variables to integers. - The double is now always rounded towards zero, the remainder of its division - by 2^32 or 2^64 (depending on sizeof(long)) is calculated and it's made - signed assuming a two's complement representation. (Gustavo) +- DateTime + . Fixed fug #65184 (strftime() returns insufficient-length string under + multibyte locales). (Anatol) -- CLI server: - . Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi) +- GD + . Fixed #65070 (bgcolor does not use the same format as the input image with + imagerotate). (Pierre) + . Fixed Bug #65060 (imagecreatefrom... crashes with user streams). (Remi) + . Fixed Bug #65084 (imagecreatefromjpeg fails with URL). (Remi) + . Fix gdImageCreateFromWebpCtx and use same logic to load WebP image + that other formats. (Remi) -- cURL: - . Implemented FR #46439 - added CURLFile for safer file uploads. +- Intl: + . Add IntlCalendar::setMinimalDaysInFirstWeek()/ + intlcal_set_minimal_days_in_first_week(). + . Fixed trailing space in name of constant IntlCalendar::FIELD_FIELD_COUNT. + . Fixed bug #62759 (Buggy grapheme_substr() on edge case). (Stas) + . Fixed bug #61860 (Offsets may be wrong for grapheme_stri* functions). (Stas) -- Intl: - . Cherry-picked UConverter wrapper, which had accidentaly been committed only - to master. +- OCI8: + . Bump PECL package info version check to allow PECL installs with PHP 5.5+ -- mysqli - . Added mysqli_begin_transaction()/mysqli::begin_transaction(). Implemented - all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT - and ROLLBACK through options to mysqli_commit()/mysqli_rollback() and their - respective OO counterparts. They work in libmysql and mysqlnd mode. (Andrey) - . Added mysqli_savepoint(), mysqli_release_savepoint(). (Andrey) +- PDO: + . Allowed PDO_OCI to compile with Oracle Database 12c client libraries. + (Chris Jones) -- mysqlnd - . Add new begin_transaction() call to the connection object. Implemented all - options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT - and ROLLBACK. (Andrey) - . Added mysqlnd_savepoint(), mysqlnd_release_savepoint(). (Andrey) +- Pgsql + . pg_unescape_bytea() raises E_WARNING for invalid inputs. (Yasuo) -- Sockets: - . Added recvmsg() and sendmsg() wrappers. (Gustavo) - See https://wiki.php.net/rfc/sendrecvmsg +- Phar: + . Fixed Bug #65142 (Missing phar man page). (Remi) -- Filter: - . Implemented FR #49180 - added MAC address validation. (Martin) +- Session: + . Added optional create_sid() argument to session_set_save_handler(), + SessionHandler and new SessionIdInterface. (Leigh, Arpad) -- Phar: - . Fixed timestamp update on Phar contents modification. (Dmitry) +- Sockets: + . Implemented FR #63472 (Setting SO_BINDTODEVICE with socket_set_option). + (Damjan Cvetko) + . Allowed specifying paths in the abstract namespace for the functions + socket_bind(), socket_connect() and socket_sendmsg(). (Gustavo) + . Fixed bug #65260 (sendmsg() ancillary data construction for SCM_RIGHTS is + faulty). (Gustavo) - SPL: - . Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence) - . Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS). - (patch by kriss@krizalys.com, Laruence) - . Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended). - (Nikita Popov) - . Fixed bug #52861 (unset fails with ArrayObject and deep arrays). - (Mike Willbanks) + . Fixed bug #65136 (RecursiveDirectoryIterator segfault). (Laruence) + . Fixed bug #61828 (Memleak when calling Directory(Recursive)Iterator + /Spl(Temp)FileObject ctor twice). (Laruence) -- SNMP: - . Fixed bug #64124 (IPv6 malformed). (Boris Lytochkin) +- CGI/FastCGI SAPI: + . Added PHP_FCGI_BACKLOG, overrides the default listen backlog. (Arnaud Le + Blanc) -24 Jan 2013, PHP 5.5.0 Alpha 4 +20 Jun 2013, PHP 5.5.0 - Core: - . Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence) - . Implemented RFC for Class Name Resolution As Scalar Via "class" Keyword. - (Ralph Schindler, Nikita Popov, Lars) - -- DateTime - . Added DateTimeImmutable - a variant of DateTime that only returns the - modified state instead of changing itself. (Derick) - -- FPM: - . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam) - -- pgsql: - . Bug #46408: Locale number format settings can cause pg_query_params to - break with numerics. (asmecher, Lars) - -- dba: - . Bug #62489: dba_insert not working as expected. - (marc-bennewitz at arcor dot de, Lars) - -- Reflection: - . Fixed bug #64007 (There is an ability to create instance of Generator by - hand). (Laruence) - -10 Jan 2013, PHP 5.5.0 Alpha 3 - -- General improvements: - . Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). (Pierrick) - . Fixed bug #63822 (Crash when using closures with ArrayAccess). + . Added Zend Opcache extension and enable building it by default. + More details here: https://wiki.php.net/rfc/optimizerplus. (Dmitry) + . Added generators and coroutines (https://wiki.php.net/rfc/generators). (Nikita Popov) - . Add Generator::throw() method. (Nikita Popov) - . Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, Lars) - . Bug #52126: timestamp for mail.log (Martin Jansen, Lars) - -- mysqlnd - . Fixed return value of mysqli_stmt_affected_rows() in the time after - prepare() and before execute(). (Andrey) - -- cURL: - . Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror - curl_pause, curl_reset, curl_share_close, curl_share_init, - curl_share_setopt curl_strerror and curl_unescape. (Pierrick) - . Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION, - CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE, - CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick) - -18 Dec 2012, PHP 5.5.0 Alpha 2 - -- General improvements: - . Added systemtap support by enabling systemtap compatible dtrace probes on - linux. (David Soria Parra) + . Added "finally" keyword (https://wiki.php.net/rfc/finally). (Laruence) + . Added simplified password hashing API + (https://wiki.php.net/rfc/password_hash). (Anthony Ferrara) + . Added support for constant array/string dereferencing. (Laruence) + . Added array_column function which returns a column in a multidimensional + array. https://wiki.php.net/rfc/array_column. (Ben Ramsey) + . Added boolval(). (Jille Timmermans) + . Added "Z" option to pack/unpack. (Gustavo) + . Added Generator::throw() method. (Nikita Popov) + . Added Class Name Resolution As Scalar Via "class" Keyword. + (Ralph Schindler, Nikita Popov, Lars) + . Added optional second argument for assert() to specify custom message. Patch + by Lonny Kapelushnik (lonny@lonnylot.com). (Lars) . Added support for using empty() on the result of function calls and other expressions (https://wiki.php.net/rfc/empty_isset_exprs). (Nikita Popov) diff --cc UPGRADING index 4985665a0f,008f8eeda0..eb3bf999a4 --- a/UPGRADING +++ b/UPGRADING @@@ -110,78 -81,59 +110,82 @@@ PHP 5.5 UPGRADE NOTE 4. Changed Functions ======================================== -- pack()/unpack() had the following changes, which bring it more in line - with Perl's behavior: - - Implemented format character "Z": NULL padded string, with trailing NULL - bytes removed. - - Changed format character "a": this no longer removes trailing NULL bytes. - - Changed format character "A": all trailing ASCII whitespace is now removed - (defined as spaces, tabs, \r, \n and NULL). -- MessageFormatter::format() and related functions now accepted named arguments - and mixed numeric/named arguments in ICU 4.8+. -- MessageFormatter::format() and related functions now don't error out when - an insufficient argument count is provided. Instead, the placeholders will - remain unsubstituted. -- MessageFormatter::parse() and MessageFormat::format() (and their static - equivalents) now don't throw away better than second precision in the - arguments. -- IntlDateFormatter::__construct and datefmt_create() now accept for the - $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone - objects and NULL. It used to accept only time zone identifiers and NULL. - Invalid time zone identifiers are no longer accepted. Emptry strings are - no longer accepted. +- pack()/unpack() had the following changes, which bring it more in + line with Perl's behavior: - Implemented format character "Z": NULL + padded string, with trailing NULL bytes removed. - Changed format + character "a": this no longer removes trailing NULL bytes. - + Changed format character "A": all trailing ASCII whitespace is now + removed (defined as spaces, tabs, \r, \n and NULL). + +- MessageFormatter::format() and related functions now accepted named + arguments and mixed numeric/named arguments in ICU 4.8+. + +- MessageFormatter::format() and related functions now don't error out + when an insufficient argument count is provided. Instead, the + placeholders will remain unsubstituted. + +- MessageFormatter::parse() and MessageFormat::format() (and their + static equivalents) now don't throw away better than second + precision in the arguments. + +- IntlDateFormatter::__construct and datefmt_create() now accept for + the $timezone argument time zone identifiers, IntlTimeZone objects, + DateTimeZone objects and NULL. It used to accept only time zone + identifiers and NULL. Invalid time zone identifiers are no longer + accepted. Empty strings are no longer accepted. + - The default time zone used in IntlDateFormatter::__construct and - datefmt_create() (when the corresponding argument is not passed or NULL is - passed) is now the one given by date_default_timezone_get(), not the - default ICU time zone. -- The time zone passed to the IntlDateFormatter is ignored if it is NULL and if - the calendar passed is an IntlCalendar object -- in this case, the - IntlCalendar's time zone will be used instead. Otherwise, the time zone - specified in the $timezone argument is used instead. This does not affect - old code, as IntlCalendar was introduced in this version. -- IntlDateFormatter::__construct and datefmt_create() now accept for the - $calendar argument also IntlCalendar objects. -- IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false - if the IntlDateFormatter was set up with an IntlCalendar instead of the - constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not - exist before this version. -- IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept - an IntlCalendar object, in which case its time zone is taken. Passing a - constant is still allowed, and still keeps the time zone. + datefmt_create() (when the corresponding argument is not passed or + NULL is passed) is now the one given by date_default_timezone_get(), + not the default ICU time zone. + +- The time zone passed to the IntlDateFormatter is ignored if it is + NULL and if the calendar passed is an IntlCalendar object -- in this + case, the IntlCalendar's time zone will be used instead. Otherwise, + the time zone specified in the $timezone argument is used + instead. This does not affect old code, as IntlCalendar was + introduced in this version. + +- IntlDateFormatter::__construct and datefmt_create() now accept for + the $calendar argument also IntlCalendar objects. + +- IntlDateFormatter::getCalendar() and datefmt_get_calendar() return + false if the IntlDateFormatter was set up with an IntlCalendar + instead of the constants + IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not exist + before this version. + +- IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also + accept an IntlCalendar object, in which case its time zone is + taken. Passing a constant is still allowed, and still keeps the time + zone. + - IntlDateFormatter::format() and datefmt_format() now also accept an IntlCalendar object for formatting. -- php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid() and - zend_logo_guid() have been removed + - set_error_handler(NULL) can now be used to reset the error handler. - Furthermore both set_error_handler(NULL) and set_exception_handler(NULL) will - now return the previously defined error/exception handler. Previously - bool(true) was returned. -- setcookie(), setrawcookie() and ext/session now send Max-Age headers alongside - Expires headers. (see https://wiki.php.net/rfc/cookie_max-age) -- curl_setopt now accepts new option CURLOPT_SAFE_UPLOAD and CURLFile object for - safer file uploads (see https://wiki.php.net/rfc/curl-file-upload) -- Functions in the socket extension now do not emit warnings when the errno is - EAGAIN, EWOULDBLOCK or EINPROGRESS. + Furthermore both set_error_handler(NULL) and + set_exception_handler(NULL) will now return the previously defined + error/exception handler. Previously bool(true) was returned. + +- setcookie(), setrawcookie() and ext/session now send Max-Age headers + alongside Expires headers. (see + https://wiki.php.net/rfc/cookie_max-age) + +- curl_setopt now accepts new option CURLOPT_SAFE_UPLOAD and CURLFile + object for safer file uploads (see + https://wiki.php.net/rfc/curl-file-upload) + +- Functions in the socket extension now do not emit warnings when the + errno is EAGAIN, EWOULDBLOCK or EINPROGRESS. + +- Since 5.5.2, spl_autoload_functions() returns different names for + different lambda functions registered via spl_autoload_register(). + ++- Since 5.5.3, DOMDocument::schemaValidateSource() and ++ DOMDocument::schemaValidate() accept flag parameter. Only flag ++ available now is LIBXML_SCHEMA_CREATE. Default is 0. + ======================================== 5. New Functions ========================================