Compare commits

..
Author SHA1 Message Date
Johannes Schlüter 7d14f70776 PHP 5.3.4 2010-12-08 21:41:22 +00:00
Johannes Schlüter 3d76289c59 PHP 5.3.4 2010-12-08 21:38:51 +00:00
Eyal Teutsch eabb9be2ac curl_setopt() arg: using DIRECTORY_SEPARATOR rather then "/" to make windows tests pass too 2010-12-08 14:16:17 +00:00
Pierre Joye f9207e3187 - new warning in imagepstext 2010-12-08 09:38:47 +00:00
Pierre Joye a0eb5848b5 - Fix #53492, fix crash if aa steps are invalid 2010-12-08 08:45:56 +00:00
Pierre Joye cba0322c81 - not anymore in core or builtin 2010-12-07 23:53:51 +00:00
Andrey Hristov fc6e70d8e4 switch this off for the release 2010-12-07 11:13:55 +00:00
Pierre Joye 1504071cb1 - add CVE 2010-12-07 01:22:23 +00:00
Andrey Hristov 5efdfee8c6 Skip additional result sets sent by MySQL 5.5 servers
which break the Protocol API 
(see http://bugs.mysql.com/bug.php?id=58700)
2010-12-06 13:59:14 +00:00
Andrey Hristov 03fd10c479 don't crash if the API is used incorrectly 2010-12-06 13:50:51 +00:00
Felipe Pena 75eeee8f24 - Fixed test (Eyal Teutsch) 2010-12-04 15:57:08 +00:00
Felipe Pena 0aa36e2d97 - Fixed test 2010-12-04 15:48:45 +00:00
Felipe Pena 0f53b4e515 - Fixed tests 2010-12-04 12:28:23 +00:00
Felipe Pena 76ba9b44b4 - Fixed test 2010-12-03 23:25:27 +00:00
Felipe Pena 3dc4f14c6b - Fixed test 2010-12-03 22:58:21 +00:00
Felipe Pena 3e0b63312e - Order 2010-12-03 21:09:47 +00:00
Felipe Pena 689d1d9e4b - Fixed bug #53463 (sqlite3 columnName() segfaults on bad column_number) 2010-12-03 21:05:44 +00:00
Jani Taskinen 686c7fec26 - CS + reorder to match trunk better, removed trailing dots from error messages 2010-12-03 16:04:24 +00:00
Jani Taskinen 85ef85a0b4 - Fix test 2010-12-03 16:02:47 +00:00
Jani Taskinen f561727ee0 - Add test for the ob_start($foo); leak/crash bug 2010-12-03 15:30:21 +00:00
Jani Taskinen c8e40e49d7 - Fix leaks and crash bug when passing the callback as variable 2010-12-03 13:20:13 +00:00
Pierre Joye 63d87a0adb - Fix #29085, bad default include_path on Windows 2010-12-02 23:23:14 +00:00
Felipe Pena 06c183b761 - Cosmetics 2010-12-02 23:01:04 +00:00
Pierre Joye aef55bc5f3 - some missing entries 2010-12-02 22:56:57 +00:00
Andrey Hristov 9f045cd40e fix test after newly introduced constant 2010-12-02 19:11:41 +00:00
Johannes Schlüter 094bcdff8b - Back to -dev 2010-12-02 14:34:32 +00:00
Andrey Hristov 334e62a77d and export the new constant 2010-12-02 14:21:23 +00:00
Andrey Hristov 3da811a124 new server constant as of 5.5 2010-12-02 13:59:56 +00:00
Johannes Schlüter f915973c1e - PHP 5.3.4RC2 2010-12-02 13:59:38 +00:00
Pierre Joye cd62a70863 - not TS and useless on server, also not required anymore with the supported windows versions 2010-12-02 11:37:43 +00:00
Adam Harvey 92fa280b96 Minimal fix for bug #53440 (INSTALL file refers to php.ini-dist, should refer
to php.ini-production). There are a lot more issues with the INSTALL file,
though, which I'll file another bug for.
2010-12-02 03:26:37 +00:00
Christopher Jones 24c87d760d Remove OCI8 devel status in preparation for PHP 5.3.4 release 2010-12-01 23:30:28 +00:00
Christopher Jones 2024790fd2 Add Berkeley DB 5.1 support to the DBA extension 2010-12-01 19:20:16 +00:00
Ilia Alshanetsky d506ce8d94 Fixed bug #51250 (iconv_mime_decode() does not ignore malformed Q-encoded words) 2010-12-01 14:03:36 +00:00
Andrey Hristov 4adcc3c7bc add a comment 2010-12-01 10:16:51 +00:00
Jérôme Loyet 4c76006fe3 - Fixed bug #53412 (segfault when using -y) 2010-11-30 19:37:10 +00:00
Ilia Alshanetsky 964eff5276 Missing bits from last commit 2010-11-30 16:11:27 +00:00
Ilia Alshanetsky 085e8b781c Fixed bug #52202 (CURLOPT_PRIVATE gets corrupted). 2010-11-30 13:40:02 +00:00
Pierre Joye 761c62267f Fixed crash in zip extract method (possible CWE-170) 2010-11-30 11:04:06 +00:00
Ilia Alshanetsky f719d3707d Fixed bug #52656 (DOMCdataSection does not work with splitText). 2010-11-29 14:48:53 +00:00
Ilia Alshanetsky dd92188d76 Fixed bug #52828 (curl_setopt does not accept persistent streams). 2010-11-29 14:40:59 +00:00
Adam Harvey 7111501381 Update INI files per doc bug #53420 (mail.log is poorly documented). 2010-11-29 03:44:56 +00:00
Derick Rethans e16265aa0e - Reorganize slightly as there was already a date and an intl extension
header/section.
2010-11-28 16:33:07 +00:00
Derick Rethans 688b347d84 - Fixed two more test cases. 2010-11-28 16:27:49 +00:00
Derick Rethans 8cf9513bb9 - Fixed a few test cases. 2010-11-28 13:41:06 +00:00
Ilia Alshanetsky 3239a25e53 Missing bit from previous commit 2010-11-26 21:00:03 +00:00
Ilia Alshanetsky f28cff1925 Fixed bug #52327 (base64_decode() improper handling of leading padding in strict mode) 2010-11-26 20:59:13 +00:00
Pierre Joye c70397b3a9 - Fixed #53409, sleep() return NULL on Windows 2010-11-26 18:25:13 +00:00
Jérôme Loyet f13f4bc872 - Fixed bug #52501 (libevent made FPM crashed when forking -- libevent has been removed) 2010-11-26 13:46:15 +00:00
Johannes Schlüter 222e0bc0f6 - Remove outdated, unmaintained, misleading ChangeLog files 2010-11-26 13:21:25 +00:00
Ilia Alshanetsky 523da85c11 Fixed bug #53304 (quot_print_decode does not handle lower-case hex digits) 2010-11-25 21:38:06 +00:00
Gustavo André dos Santos Lopes 05abc63d14 - Fixed bug #53403 (use of unitialized values). Fixes the fix for bug #46587.
- Added test for bug #46587.
2010-11-25 16:44:20 +00:00
Felipe Pena dbeef88661 - Ordering 2010-11-25 00:05:03 +00:00
Pierre Joye 2ba369cdfa - fixed #53352 2010-11-23 22:14:54 +00:00
Felipe Pena a9a2eb4a14 - Fixed compile warnings 2010-11-23 21:49:18 +00:00
Felipe Pena ac15afe9c1 - Fixed test 2010-11-23 21:45:22 +00:00
Ilia Alshanetsky 4f3ab10786 Fixed bug #46587 (mt_rand() does not check that max is greater than min). 2010-11-23 13:09:15 +00:00
Christopher Jones 8ed386997f Explicitly name the added constant 2010-11-22 22:18:30 +00:00
Ilia Alshanetsky a40667d756 Fixed bug #51003 (unaligned memory access in ext/hash/hash_tiger.c). 2010-11-22 13:12:28 +00:00
Ilia Alshanetsky 534395e4ae Fixed bug #51003 (unaligned memory access in ext/hash/hash_tiger.c) 2010-11-22 13:10:13 +00:00
Gustavo André dos Santos Lopes 2a545be57f - Fix tests for \0 patch in PHP 5.3.
- Fix constants_error_004.phpt (closes bug #51901)
2010-11-22 05:10:14 +00:00
Felipe Pena 167e51f36c - Fixed ZTS build 2010-11-21 17:41:33 +00:00
Felipe Pena abb7038cbf - New NEWS structure (to be improved) 2010-11-21 14:07:22 +00:00
Johannes Schlüter ac4f3422bc - Improve test 2010-11-21 12:28:10 +00:00
Johannes Schlüter 9ea04e1e46 - Fix #52854 (ReflectionClass::newInstanceArgs does not work for classes without constructors 2010-11-21 12:24:09 +00:00
Felipe Pena 1ac484d1a1 - Fixed bug #53366 (Reflection doesnt get dynamic property value from getProperty()) 2010-11-20 22:53:55 +00:00
Kalle Sommer Nielsen 78f10489ca Added second fix from #50987 that wasn't apart of Ilia's commit 2010-11-20 20:59:28 +00:00
Ilia Alshanetsky 5f1b91a6bf Fixed bug #50987 (unaligned memory access in phar.c) 2010-11-20 19:27:31 +00:00
Stanislav Malyshev 4415b3af51 Add support for DateTime in datefmt_format 2010-11-20 02:09:04 +00:00
Christopher Jones c8462df127 Remove unreverted duplicate fix for nulls 2010-11-20 01:29:03 +00:00
Stanislav Malyshev f061627899 report intl fix 2010-11-19 23:27:52 +00:00
Stanislav Malyshev e6c213b8ea Fix invalid args bugs by Maksymilian Arciemowicz 2010-11-19 23:22:55 +00:00
Felipe Pena 93a4e0d1fa - Fixed extract() to do not overwrite $GLOBALS and $this when using EXTR_OVERWRITE.
patch by: jorto at redhat dot com
2010-11-19 22:06:44 +00:00
Felipe Pena f16059d697 - Fixed bug #53362 (Segmentation fault when extending SplFixedArray) 2010-11-19 20:07:32 +00:00
Martin Jansen 61d97af18b Fixed two typos in NEWS. 2010-11-19 18:38:23 +00:00
Ilia Alshanetsky a8b4724747 Fixed bug #47168 (printf of floating point variable prints maximum of 40 decimal places). 2010-11-19 16:36:10 +00:00
Jani Taskinen caf792940f - Merged check from trunk to prevent building multiple SAPIs (bug #52419) 2010-11-19 08:26:47 +00:00
Christopher Jones 64f21f63ad Update fix proviso now the mentioned Oracle bugfix is available in an Oracle patchset 2010-11-19 00:14:58 +00:00
Gustavo André dos Santos Lopes cdab5577c0 - Fixed borked test bug52820.phpt.
- Synced htmlentities17.phpt with trunk; there's no ≀ entity
  in HTML 4.01.
2010-11-18 21:44:42 +00:00
Johannes Schlüter 63f65b6e8f Back to -dev 2010-11-18 19:03:59 +00:00
Johannes Schlüter 7a8d9ad16a - 5.3.4RC1 2010-11-18 17:57:54 +00:00
Pierre Joye f5570be3a9 - path with null entries 2010-11-18 17:09:27 +00:00
Pierre Joye ff26185322 - revert part of the null fix, was already applied by Chris 2010-11-18 16:16:26 +00:00
Pierre Joye ce96fd6b07 - fix #39863, do not accept paths with NULL in them. See http://news.php.net/php.internals/50191, trunk will have the patch later (adding a macro and/or changing (some) APIs. Patch by Rasmus 2010-11-18 15:22:22 +00:00
Gustavo André dos Santos Lopes 75631ab8ac - Implemented alternative strategy for change in rev #304985 so as to
not to break binary compatibility in the 5.3 branch.
2010-11-18 12:10:17 +00:00
Felipe Pena 60ad3e54af - Fix build 2010-11-18 11:33:42 +00:00
Derick Rethans 95a88f04a9 - Fixed the call as well. 2010-11-18 11:28:07 +00:00
Derick Rethans a2434bb66c - Revert the ABI changing commit. 2010-11-18 11:24:59 +00:00
Gustavo André dos Santos Lopes 267634b766 - Fixed NULL dereference in lex_scan on zend multibyte builds where the script
had a flex incompatible encoding and there was no converter.
#see rev #305464 and rev #305466.
2010-11-18 04:14:49 +00:00
Gustavo André dos Santos Lopes a31f379367 - Reversed implementation of FR #44164, pending further consideration.
See rev #304903.
2010-11-18 04:09:02 +00:00
Felipe Pena e516b7a964 - Fixed bug #53335 (pdo_firebird did not implement rowCount())
patch by: preeves at ibphoenix dot com
2010-11-18 01:24:00 +00:00
Pierrick Charron 6f7821a82d Remove unused variables 2010-11-17 17:55:18 +00:00
Pierre Joye 4ced44323d - test for NULL deref fix 2010-11-17 17:26:33 +00:00
Pierre Joye 7b27de9f0b - NULL deref fix, patch by Gustavo 2010-11-17 16:46:19 +00:00
Jani Taskinen d225fe4e58 - Fix test 2010-11-17 14:54:37 +00:00
Felipe Pena 5d2e201c3d - Fixed typo (reported by eyal.t at zend dot com) 2010-11-17 14:49:26 +00:00
Felipe Pena 7716873a5b - Updated QA and User note maintainers credits 2010-11-16 23:02:00 +00:00
Jérôme Loyet 404580d95c - fix (log with level < WARNING before daemonizing were not written to /dev/stderr) 2010-11-16 22:53:47 +00:00
Felipe Pena bbf58f9234 - Fixed bug #53319 (strip_tags() may strip '<br />' incorrectly) 2010-11-16 22:16:44 +00:00
Jérôme Loyet 5ddbeffc6f - Fixed #53310 (sparc < v9 won't is not supported) 2010-11-16 22:02:36 +00:00
Felipe Pena 49493e226d - Fixed bug #53323 (pdo_firebird getAttribute() crash)
patch by: preeves at ibphoenix dot com
2010-11-16 21:02:14 +00:00
Christopher Jones 2bc233e856 Improve test cross- DB version portability 2010-11-16 20:50:29 +00:00
Christopher Jones f819965513 Added missing news 2010-11-16 19:38:31 +00:00
Christopher Jones 2ea52b1fb4 Protect against null bytes in LOB filenames (rasmus) 2010-11-16 19:33:31 +00:00
Pierre Joye 4af7de49aa - fix build 2010-11-15 23:46:21 +00:00
Felipe Pena e6de920a27 - Fix wrong argument to read_property call 2010-11-15 18:48:48 +00:00
Gustavo André dos Santos Lopes 1045aa2a7c - Fixed bug #52820 (writes to fopencookie FILE* not commited when seeking the
stream).
2010-11-15 18:22:52 +00:00
Rasmus Lerdorf d91c4be0d6 ws fix 2010-11-15 09:04:27 +00:00
Pierre Joye f6b3d22218 - allow firebird header to be in the normal deps directory and restore firebird support on win (5.3.4+) 2010-11-14 22:40:30 +00:00
Jérôme Loyet 5ef0100b4d - extend the 'i-t' fpm argument to dump configuration file when called twice (-tt) 2010-11-14 22:22:07 +00:00
Jérôme Loyet c95477e729 - Fixed #52691 (allow multiple instance of FPM using a custom prefix) 2010-11-14 22:01:34 +00:00
Felipe Pena 6958cb4a14 - Added missing void arg checks 2010-11-14 18:40:08 +00:00
Felipe Pena 46983d532e - Add missing check 2010-11-14 01:38:52 +00:00
Jani Taskinen e0858b424a - Using ifelse() here is safer, also eases debugging generated configure. 2010-11-13 22:51:11 +00:00
Felipe Pena a0ccf0f14a - Fix the constant detection 2010-11-13 19:50:55 +00:00
Felipe Pena 8901635d73 - Fixed bug #53305 (E_NOTICE when defining a constant starts with __COMPILER_HALT_OFFSET__)
- Fixed a part of bug #53260 (the __COMPILER_HALT_OFFSET__ name is not shown in the E_NOTICE)
2010-11-13 18:46:11 +00:00
Derick Rethans bb1dbdf62c - Sync from HEAD. 2010-11-13 16:31:01 +00:00
Derick Rethans 28b41c811d - MFH: Added support for the ( and ) delimiters/separators to
DateTime::createFromFormat().
- Regenerated the parsers for HEAD and PHP_5_3.
2010-11-13 15:01:48 +00:00
Derick Rethans 9b4999881f - Don't show timezone if it wasn't found while parsing. 2010-11-13 14:57:47 +00:00
Jani Taskinen 47713462ce - WS 2010-11-13 11:07:38 +00:00
Jani Taskinen 0e72e5897e - Sync with trunk 2010-11-13 10:18:35 +00:00
Felipe Pena c095bec250 - Fixed bug #53136 (Invalid read on openssl_csr_new()) 2010-11-12 23:34:03 +00:00
Gustavo André dos Santos Lopes 3332c5be08 - Fixed bug #53297 (gettimeofday implementation in php/win32/time.c can return
1 million microsecs). (ped at 7gods dot org)
- Moved line out of order in NEWS.
2010-11-12 18:37:02 +00:00
Ulf Wendel b343748d56 Testing for the two new statistics 'bytes_received_real_data_normal' and 'bytes_received_real_data_ps' 2010-11-12 12:21:35 +00:00
Jérôme Loyet c28f44e409 - Fixed #52660 (custom process title for FPM) 2010-11-12 00:30:35 +00:00
Jérôme Loyet 5a416465a0 - Fixed #52692 (Added '-t/--test' to php-fpm to check and validate FPM conf file) 2010-11-11 23:27:15 +00:00
Jérôme Loyet da29092159 - Fixed bug #52693 (configuration file errors are not logged to stderr) 2010-11-11 22:48:46 +00:00
Jérôme Loyet 7bc07ff884 - get rid of ZLOG_STUFF code redundancy 2010-11-11 21:38:18 +00:00
Jérôme Loyet 8dd82c5fde - comment out fpm_php_set_fcgi_mgmt_vars to remove compilation warning 2010-11-11 21:30:55 +00:00
Jérôme Loyet 71a8b75c51 - remove useless check 2010-11-11 12:56:44 +00:00
Jérôme Loyet 8977fc8ace - add missing timer* macros (for solaris)
- ws
2010-11-11 12:49:11 +00:00
Jérôme Loyet d7e8aaea46 here come the new 2010-11-11 02:43:51 +00:00
Jérôme Loyet 0a1e29d74b - add "listen queue len" stat (thx to Andrei Nigmatulin) 2010-11-11 02:34:47 +00:00
Kalle Sommer Nielsen 4cc8073839 Added new constant; ZEND_MULTIBYTE to check whether PHP was compiled using --enable-zend-multibyte or not instead of sniffing phpinfo() (FR #52348) 2010-11-11 01:43:53 +00:00
Jérôme Loyet 7e56681670 - syntax and minor optimizations 2010-11-11 01:01:56 +00:00
Jérôme Loyet 07abcdc031 - don't call shutdown functions after child ends softly, let the master process call them 2010-11-10 23:54:14 +00:00
Christopher Jones f4b2664e2c Prepare for PECL OCI8 1.4.4 2010-11-10 19:08:13 +00:00
Christopher Jones 29bdf30880 Improve startup failure error messages 2010-11-10 18:59:56 +00:00
Christopher Jones 7a42845d80 Fixed bug #53284 (Valgrind warnings in oci_set_* functions) 2010-11-10 18:49:55 +00:00
Christopher Jones 2bf58d8c70 Improve test portability 2010-11-10 18:46:05 +00:00
Andrey Hristov 77d160772f Fix bad types, because zend_parse_xxx expect signed integers
for lengths, no matter how stupid this is :)
2010-11-10 13:57:09 +00:00
Adam Harvey 4df2980242 Fix line wrapping. 2010-11-09 14:54:10 +00:00
Adam Harvey 84dc845ff8 Fix bug #53279 (SplFileObject doesn't initialise default CSV escape character). 2010-11-09 14:53:23 +00:00
Moriyoshi Koizumi 89d372ba27 - Fix bug #53273 (mb_strcut() returns garbage with the excessive length parameter). 2010-11-09 03:23:04 +00:00
Felipe Pena 22f7998a0d - Fix the fix (wrong behavior) 2010-11-08 20:26:14 +00:00
Dmitry Stogov b01b2e6d0b Fixed WSDL loading using https through proxy 2010-11-08 11:34:32 +00:00
Patrick Allaert 817776d1b9 - Fixed tests not passing under windows because of the directory separator
difference (thanks Eyal Teutsch for reporting)
2010-11-08 09:29:15 +00:00
Adam Harvey 53544e36f2 Update the tests committed in r305098 (as part of the fix for bug #53226) to
use the PHP_MAXPATHLEN constant, as recommended by Pierre.
2010-11-08 09:14:48 +00:00
Gustavo André dos Santos Lopes c3557ba32e - Fixed the filter extension accepting IPv4 octets with a leading 0 as that
belongs to the unsupported "dotted octal" representation.
- Fixed bug #53236 (problems in the validation of IPv6 addresses with leading
  and trailing :: in the filter extension).
- Fixed bug #50117 (problems in the validation of IPv6 addresses with IPv4
  addresses and ::).
2010-11-08 04:36:15 +00:00
Jérôme Loyet f407fc4e01 - correct time comparison for determining the last idle child 2010-11-07 21:47:14 +00:00
Jérôme Loyet 0399b83ccb - change signal from SIGTERM to SIGQUIT for killing a child process by the dynamic process manager 2010-11-07 19:41:28 +00:00
Felipe Pena e6bef6735f - Fixed bug #52512 (Broken error handling in odbc_execute)
patch by: mkoegler at auto dot tuwien dot ac dot at
2010-11-07 18:13:53 +00:00
Felipe Pena 50863932a6 - Fixed bug #53248 (rawurlencode RFC 3986 EBCDIC support misses tilde char).
patch by: Justin Martin (frozenfire@php)
2010-11-07 12:59:22 +00:00
Felipe Pena 1db7472a73 - Coding standards 2010-11-06 18:35:38 +00:00
Felipe Pena f4927c28bc - Fixed bug #52732 (Docs say preg_match() returns FALSE on error, but it returns int(0))
patch by: slugonamission at gmail dot com
2010-11-06 18:32:10 +00:00
Felipe Pena 996f45b688 - Fixed bug #47199 (pg_delete() fails on NULL)
patch by: ewgraf at gmail dot com
2010-11-06 17:43:25 +00:00
Felipe Pena 7636635ec5 - Fixed bug #50579 (RegexIterator::REPLACE doesn't work) 2010-11-06 00:09:50 +00:00
Andrey Hristov 837391a9a7 two new stats 2010-11-05 20:07:34 +00:00
Gustavo André dos Santos Lopes 8342c36f09 - Renamed php_stream_rep_nonstand_mode to
php_stream_mode_sanitize_fdopen_fopencookie, made it not
  exported and movied it from php_streams.h to
  php_streams_int.h.
2010-11-05 18:53:48 +00:00
Adam Harvey b84e262f63 Fix bug #53226 (file_exists fails on big filenames). 2010-11-05 05:28:07 +00:00
Gustavo André dos Santos Lopes dd038a9c89 - Added CLEAN section to recently committed test. 2010-11-05 01:56:28 +00:00
Gustavo André dos Santos Lopes 68107ae1c3 - Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails
with streams opened with, inter alia, the 'xb' mode).
2010-11-05 01:29:08 +00:00
Pierre Joye 8efec79ffe - expose php_sys_(l)stat, doing will prevent me to have to provide pecl's builds for <5.3.3 and another set for 5.3.4+. Trunk remains the same, A(B/P)I can be broken there 2010-11-04 01:16:20 +00:00
Pierre Joye e61005f712 - fix type and silent warning 2010-11-03 21:50:03 +00:00
Pierre Joye 6c3ddc70ed - add stat support for zip:// 2010-11-03 21:48:08 +00:00
Pierre Joye 535033074a - add CVE 2010-11-03 20:22:08 +00:00
Etienne Kneuss 9d25e7ee7b Fixed covariance of return-by-ref constraints 2010-11-03 15:40:24 +00:00
Felipe Pena 21638aed88 - BFN 2010-11-03 01:46:52 +00:00
Felipe Pena 815d0e549b - Reverted fix for bug #51176 2010-11-03 01:35:26 +00:00
Felipe Pena 7b4cbadfce - Fixed config.m4 to complete the fix for bug #53141 (thanks Johannes) 2010-11-02 20:51:02 +00:00
Felipe Pena 7ded7577b2 - Fixed bug #53141 (autoload misbehaves if called from closing session)
patch by: ladislav at marek dot su
2010-11-02 18:34:56 +00:00
Ilia Alshanetsky a1632696a8 Fixed a possible double free in imap extension (Identified by Mateusz Kocielski). 2010-11-02 17:50:39 +00:00
Pierre Joye e547a0dfec - add CVE id 2010-11-02 15:33:49 +00:00
Jani Taskinen 309aefc7e7 - Fixed -g adding for gcc and g++ (former got it twice, latter not at all) 2010-11-02 09:58:08 +00:00
Arnaud Le Blanc 3ac257f344 MFH fixed bug #52784 (Race condition when handling many
concurrent signals)
2010-11-01 22:43:59 +00:00
Arnaud Le Blanc cd63986283 MFH Fix bug #52173 (ext/pcntl doesn't store/report errors)
(patch by nick dot telford at gmail dot com)
2010-11-01 20:22:23 +00:00
Derick Rethans 6e0f2daf65 - Updated to version 2010.15 (2010o) 2010-11-01 17:55:42 +00:00
Felipe Pena f4d15d8226 - Fixed bug #47643 (array_diff() takes over 3000 times longer than php 5.2.4) 2010-11-01 17:16:47 +00:00
Gustavo André dos Santos Lopes 231da1a5cb - Fixed bug #53198 (changing INI setting "from" with ini_set did not have any
effect)
#Made "from" a proper INI setting and bound it to a global variable.
#Previously, it was simply read from the hash table with the parsed ini file
#by using cfg_get_string (I wonder why this mechanism still exists...)
2010-10-29 15:29:15 +00:00
Andrey Hristov c10af225c4 - More features for the profiling, create aggregates and dump them
on file close.
- Also add a trace modifier to switch on and off the profiling.
- With additional compiler switch the profiling can be completely omitted,
of course it makes sense only when --enable-debug. Because otherwise
there is no tracing, thus no profiling.
- Added a fix for Windows for handling trace files on different devices
 (special handing of ':' )
2010-10-29 15:02:39 +00:00
Andrey Hristov cd6ea54deb gettimeofday for windows 2010-10-28 14:14:06 +00:00
Andrey Hristov 443bedf204 show tracing 2010-10-28 14:07:36 +00:00
Andrey Hristov 4c34cd9f38 fix windows debug build
better zlib detection
2010-10-28 13:46:54 +00:00
Gustavo André dos Santos Lopes db75ce41a3 - Fixed bug #49687 (utf8_decode vulnerabilities and deficiencies in the number
of reported malformed sequences). (Gustavo)
#Made a public interface for get_next_char/utf-8 in trunk to use in utf8_decode.
#In PHP 5.3, trunk's get_next_char was copied to xml.c because 5.3's
#get_next_char is different and is not prepared to recover appropriately from
#errors.
2010-10-27 18:13:25 +00:00
Gustavo André dos Santos Lopes ee80871a15 - Fixed bug #53180 (post_max_size=0 not disabling the limit when the content
type is application/x-www-form-urlencoded or is not registered with PHP).
2010-10-27 14:56:51 +00:00
Gustavo André dos Santos Lopes b5b4f94a4c - Fixed ReflectionProperty::isDefault() giving a wrong result for properties
obtained with ReflectionClass::getProperties().
2010-10-26 18:47:10 +00:00
Gustavo André dos Santos Lopes 0086bc8a96 - Implemented request #44164, zlib.output_compression is now implicitly
disabled when the header "Content-length" is set.
#One could argue that any output handler could change the size of the
#response, so this exception for zlib.output_compression is an
#inconsistency. However, zlib.output_compression is presented as a
#performance setting, whose value should have no effect on the
#correctness of the scripts. This was not the case. Setting the
#header "content-length" and enabling zlib.output_compression was
#a recipe for infringing section 4.4 of RFC 2616.
2010-10-26 02:16:21 +00:00
Andrey Hristov 762a1b2d26 rename and remove usage of inttypes.h, not needed 2010-10-25 13:44:11 +00:00
Gustavo André dos Santos Lopes 384cd8cda5 - Small optimization of the fix of bug #53071. It's not necessary to destroy
the debug info as it's not holding references anymore (the fix removed
  the refcount increments).
2010-10-25 02:03:20 +00:00
Gustavo André dos Santos Lopes 5721132c29 - Fixed bug #53071 (SPLObjectStorage defeats gc_collect_cycles). 2010-10-25 01:41:54 +00:00
Pierre Joye 3cb6a460a6 - fix Isotopp 2010-10-24 21:51:54 +00:00
Felipe Pena eabf03f436 - BFN 2010-10-24 14:05:10 +00:00
Felipe Pena 6887b97a8d - Fixed bug #53144 (SplObjectStorage::removeAll()) 2010-10-24 14:03:07 +00:00
Andrey Hristov 924bb78167 profiling in trace mode 2010-10-22 15:46:26 +00:00
Andrey Hristov 4cedb6d08a last piece to enable trace logging on windows 2010-10-22 14:34:33 +00:00
Andrey Hristov f7c44c8c4d enable debug logging on windows, in debug builds, of course 2010-10-22 14:12:45 +00:00
Ilia Alshanetsky 8a2a6dbe21 Upgraded bundled sqlite to version 3.7.3 2010-10-20 19:27:34 +00:00
Pierre Joye 8c5921bfb8 - update #52929 and zip NULL deref 2010-10-19 09:56:59 +00:00
Pierre Joye 6ab767262c - fix Fixed NULL pointer dereference in ZipArchive::getArchiveComment, (CVE-2010-3709), report&patch from Maksymilian Arciemowicz 2010-10-19 09:55:36 +00:00
Adam Harvey 6a289f4d10 Fix bug #53089 (php.ini should use portable example of find) by using POSIX
compliant syntax in the suggested find command for cleaning up session files in
the shipped php.ini files.
2010-10-18 02:10:29 +00:00
Felipe Pena 946f95c0fc - Fixed bug #53070 (Calling enchant_broker_get_dict_path before set_path crashes php) 2010-10-16 17:52:01 +00:00
Gustavo André dos Santos Lopes 3ab0b74de9 - Updated NEWS to note fix of bug #53006 now that it's confirmed it's fixed. 2010-10-15 23:54:24 +00:00
Gustavo André dos Santos Lopes a3cef7b435 - Three tests were "broken" by rev #304404, not two. Commit the change
to remaining one.
2010-10-14 19:33:12 +00:00
Gustavo André dos Santos Lopes 30d6cc8919 - Fixed get_next_char(), used by htmlentities/htmlspecialchars, accepting
certain ill-formed UTF-8 sequences.
2010-10-14 19:14:06 +00:00
Gustavo André dos Santos Lopes c99251f87e - [DOC] Reverted rev #304382 and rev #304380, as I figured out a way to
fix the erratic behavior without breaking backwards compatibility. Namely,
  $offset retains SEEK_SET behavior but actually SEEK_CUR is passed to
  _php_stream_seek, if possible, by moving the offset stream->position bytes.
- Addresses bug #53006.
2010-10-14 03:15:15 +00:00
Adam Harvey db633fb71d Fix vim marker folds. 2010-10-13 09:23:39 +00:00
Dmitry Stogov b88f7753a1 Fixed bug #52939 (zend_call_function does not respect ZEND_SEND_PREFER_REF) 2010-10-13 08:51:39 +00:00
Gustavo André dos Santos Lopes 14a54b903e - Fixed forward stream seeking emulation in streams that don't support seeking
in situations where the read operation gives back less data than requested
  and when there was data in the buffer before the emulation started. Also made
  more consistent its behavior -- should return failure every time less data
  than was requested was skipped.
- Small performance improvement by correcting off-by-one error that generate an
  invalid call to the seek handler or read handler. in _php_stream_seek.
2010-10-13 03:13:29 +00:00
Dmitry Stogov d46dcd301e Added test 2010-10-12 07:38:36 +00:00
Gustavo André dos Santos Lopes 99b613cbc8 - Added a 3rd parameter to get_html_translation_table. It now takes a charset
hint, like htmlentities et al.
- Fixed bug #49407 (get_html_translation_table doesn't handle UTF-8).
- Fixed bug #25927 (get_html_translation_table calls the ' &#39; instead of
  &#039;).
- Fixed tests for get_html_translation_table and unified the Windows and
  non-Windows versions of the tests.
2010-10-12 02:51:11 +00:00
Gustavo André dos Santos Lopes 40c3aefafb - Removed redundant local variable in dns_get_record.
- (5.3) Fixed bug in the Windows implementation of
  dns_get_record, where the two last parameters wouldn't be
  filled unless the type were DNS_ANY (Gustavo).
2010-10-11 03:07:03 +00:00
Gustavo André dos Santos Lopes 4e2fd7eeba - Fixed a typo in rev #304208 (24 instead of 34/'"').
- Improved the test bug53021.phpt to reflect other fixes in rev #304208.
- Updated NEWS to reflect other fixes in rev #304208.
2010-10-08 17:27:19 +00:00
Gustavo André dos Santos Lopes 485a094334 - Fixed bug #53021 (In html_entity_decode, failure to convert numeric entities with ENT_NOQUOTES and ISO-8859-1). 2010-10-08 16:19:58 +00:00
Andrey Hristov 93d7715e7b new collations 2010-10-08 09:15:31 +00:00
Felipe Pena f7582fc43b - Added bison 2.4.3 version to the bison version list 2010-10-07 21:44:41 +00:00
Andrey Hristov 2d2d6f84ba fix some uninitialized variables. also fix shadowing of global symbols 2010-10-07 13:49:00 +00:00
Ilia Alshanetsky a4252ab2be Fixed extrenous warning inside openssl_encrypt() for cases where iv not provided, but algo does not require an iv 2010-10-07 12:32:00 +00:00
Gustavo André dos Santos Lopes 8d34fe0d22 - Fixed test for bug #50590 on systems with 64-bit longs. 2010-10-06 17:05:05 +00:00
Andrey Hristov 1f86f6be31 here comes the news 2010-10-06 11:12:53 +00:00
Andrey Hristov 4f62c099cd Fix for Bug #52686 mysql_stmt_attr_[gs]et arg. points to incorrect type 2010-10-06 11:11:02 +00:00
Andrey Hristov 1cca9d4bf1 more variable hiding fixes 2010-10-06 07:09:37 +00:00
Andrey Hristov 062ddaa700 fix shadowing of parameters 2010-10-06 06:08:55 +00:00
Kalle Sommer Nielsen 58a15c2cf5 Update copyright year for the license 2010-10-05 22:58:19 +00:00
Andrey Hristov 82de444f9a rename parameter name - should not shadow the global symbol alloca 2010-10-05 17:20:00 +00:00
Andrey Hristov eb2908c3f7 two more compiler warnings fixed - size does matter 2010-10-05 17:10:47 +00:00
Andrey Hristov 25e84b6a23 Rename a method so it doesn't clash with a global symbol - a function
Fix compiler waring by extening the type of a variable
2010-10-05 17:03:50 +00:00
Andrey Hristov 3daf54ffa0 Fix compiler warnings - on 32bit size_t is smaller than uint64_t, although
we will never hit this the compiler should be happy.
2010-10-05 16:54:14 +00:00
Andrey Hristov 548661d96d rename parameter, should not conflict with global symbol -
the socket function
2010-10-05 16:27:49 +00:00
Andrey Hristov e97a07ae9e remove trailing commas in enums 2010-10-05 14:56:49 +00:00
Ulf Wendel bd73903efb Fix test: third parameter can be false. 2010-10-05 14:41:08 +00:00
Antony Dovgal 421b86ed5e fix bug #50345 (nanosleep not detected properly on some solaris versions) 2010-10-05 13:43:35 +00:00
Ulf Wendel ccaff0e994 Greetings from SunCC.
ext/mysqli/mysqli_driver.c", line 127|128|129: warning: syntax error:  empty declaration
2010-10-05 12:42:53 +00:00
Dmitry Stogov 1b60eb8813 Fixed bug #44248 (RFC2616 transgression while HTTPS request through proxy with SoapClient object). 2010-10-05 11:43:59 +00:00
Dmitry Stogov 455db21e06 Fixed bug #51008 (Zend/tests/bug45877.phpt fails) 2010-10-05 11:28:56 +00:00
Andrey Hristov bf7e6f930c add some safe casts 2010-10-05 11:08:21 +00:00
Patrick Allaert bf6440d00a Fixed typo in tests (thx Eyal) 2010-10-05 10:42:13 +00:00
Andrey Hristov c4e145b0bc fixing more types 2010-10-05 10:30:00 +00:00
Kalle Sommer Nielsen 33c99f9a44 Fixed constness compiler warning in pdo_mysql 2010-10-05 09:58:15 +00:00
Kalle Sommer Nielsen efe22e3bfa Fix constness warnings 2010-10-05 09:48:07 +00:00
Kalle Sommer Nielsen 87edd143ed Fixed compiler warnings in mysqli
- mysqli.c: Fix unused variables, they are only used in non-mysqlnd mode
 - mysqli_api.c (PHP_5_3 only): Fix constness, add_property_string expects a char *, not a const char *
 - mysqli_prop.c: Cast to long, as its below the LONG_MAX and therefore safe
 - mysqli_result_iterator.c: Cast to ulong as the iterator member expects that rather than a my_longlong

# In trunk only warnings regarding the zend_property_info 
# structure is present and PHP_5_3 is warning free now
2010-10-05 09:40:36 +00:00
Andrey Hristov df2261df2a fix types 2010-10-05 08:56:21 +00:00
Ulf Wendel 234181f690 Fix warnings
ext\mysqlnd\mysqlnd_result_meta.c(57) : warning C4090: 'initializing' : different 'const' qualifiers
ext\mysqlnd\mysqlnd_result_meta.c(64) : warning C4090: 'initializing' : different 'const' qualifiers
ext\mysqli\mysqli_report.c(50) : warning C4013: 'php_mysqli_throw_sql_exception' undefined; assuming extern returning int
2010-10-05 08:29:54 +00:00
Andrey Hristov 4c88033aa2 fix recent TSRM build break, with --enable-debug 2010-10-05 08:17:33 +00:00
Gustavo André dos Santos Lopes b3a3c8f7a6 - Moved ucgendat.c to a separate directory and included the
OpenLDAP license there, as required by the license itself.
2010-10-05 02:34:35 +00:00
Gustavo André dos Santos Lopes 7e61cffb0d - Fixed bug #52981 (Unicode casing table was out-of-date).
Updated with UnicodeData-6.0.0d7.txt and included the
  source of the generator program with the distribution.
#The replaced tables, generated circa 2002, seem to reflect
#Unicode 3.2. I was unable to generate the same property
#offsets with Unicode 3.2 data, but all the tests I made
#indicate php_unicode_is_prop() is returning the correct
#values. The replaced file merely says it used a "modified
#version" of ucgendat, which is not very helpful. The results
#I got were not significantly different, only slightly higher
#offsets at two properties, which were carried over to the
#subsequent properties.
#I was, however, able to replicate precisely the casing table.
#The extent of the "modifications" besides omitting most of
#the tables, a slightly different layout and the casing table
#offsets having been multiplied by 3 is unclear.
#The test suite showed no regressions; however, it's very poor
#in testing the modified portion of the extension.
2010-10-05 01:54:17 +00:00
Kalle Sommer Nielsen 54624f9902 We do not need this TSRMLS_FETCH() call as we do not use any TSRM stuff in here, so we can get
a minor boost here in ZTS mode.
2010-10-04 21:04:25 +00:00
Andrey Hristov a4ad111454 fix two more warnings 2010-10-04 14:52:14 +00:00
Andrey Hristov 9f73a4e045 add some safe casts - lower the number of warnings by 2 2010-10-04 14:12:31 +00:00
Andrey Hristov 4c63a2232d Fix const-ness 2010-10-04 13:54:30 +00:00
Ulf Wendel 5aca10ee13 Trying to fix compiler warnings (on Windows). 2010-10-04 13:36:23 +00:00
Andrey Hristov 159ed311cc Even better patch 2010-10-04 12:59:29 +00:00
Andrey Hristov cacd5ad924 don't define twice the macro on some platforms 2010-10-04 12:41:12 +00:00
Ulf Wendel 1f9a7fd758 Fixing compiler warning. 2010-10-04 10:58:05 +00:00
Ulf Wendel ee2a82e327 Fixing "ext/mysqlnd/mysqlnd.h", line 287: warning: syntax error: empty declaration" 2010-10-04 10:51:44 +00:00
Ulf Wendel 122179478a Next one... ext/mysqli/mysqli_fe.c", line [many]: warning: syntax error: empty declaration 2010-10-04 10:43:21 +00:00
Ulf Wendel 4113fad4ec Fixing compiler warning "ext/mysqli/mysqli_prop.c", line [...]: warning: syntax error: empty declaration" 2010-10-04 10:40:16 +00:00
Ulf Wendel 71bbb24ff0 Sorry again, nothing but removal of white space from the end of the lines.
- fix compile warning "ext/mysql/php_mysql.c:640:11: warning: extra tokens at end of #ifdef directive"
2010-10-04 10:08:10 +00:00
Ulf Wendel 2d925fb216 Sorry for the commit but compiler warnings are annoying and so are white spaces at the end of a line, if one uses an editor which removes them on save and diff's get blown
up by white space changes...

Changes: 
- remove end of line white space
- fix compiler warning "ext/mysqli/mysqli_priv.h:156:27: warning: no newline at end of file"
- fix compiler warning "ext/mysqli/mysqli_fe.h:135:25: warning: no newline at end of file"
- fix compiler warning "ext/mysqli/mysqli.c:896:11: warning: extra tokens at end of #ifdef directive"
2010-10-04 10:02:58 +00:00
Gustavo André dos Santos Lopes 817c28c867 - Implemented FR #50692, not uploaded files don't count towards
max_file_uploads limit.
- As a side improvement, temporary files are not opened for
  empty uploads and, in debug mode, 0-length uploads.
2010-10-04 01:27:33 +00:00
Felipe Pena 090a9b3331 - Fixed bug #52971 (PCRE-Meta-Characters not working with utf-8)
#   In  PCRE,  by  default, \d, \D, \s, \S, \w, and \W recognize only ASCII
#       characters, even in UTF-8 mode. However, this can be changed by setting
#       the PCRE_UCP option.
2010-10-03 16:01:38 +00:00
Gustavo André dos Santos Lopes 4b0927b042 - Fixed a small mistake in the fix for bug #50953 that made connection timeouts not be detected as such. 2010-10-02 18:32:20 +00:00
Dmitry Stogov 4d8503a212 Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early). (mail_ben_schmidt at yahoo dot com dot au, Dmitry) 2010-10-01 09:49:20 +00:00
Ulf Wendel bc6e920ebc Fix leak with persistent connections when using mysqli.default_host is used 2010-10-01 08:54:16 +00:00
Stanislav Malyshev b55d4ecb41 Fix bug #52906 gmp_mod returns negative result when non-negative is expected 2010-10-01 00:12:23 +00:00
Andrey Hristov 60327d87a7 Plug a leak in mysqli when in the same script
a pconn is reused.
Call end_psession earlier - so will mysqlnd and
the plugins free data earlier.
2010-09-30 18:10:03 +00:00
Dmitry Stogov 5c6f0ebeab Prevented crash in GC because of incorrect reference counting 2010-09-30 14:11:51 +00:00
Adam Harvey 104bf57ae7 Loosen the valgrind version check slightly in run-tests.php so that it works
with the packaged valgrind in Ubuntu 10.04.
2010-09-30 11:16:45 +00:00
Adam Harvey 5f9956397f Fixed bug #52941 (The 'iconv_mime_decode_headers' function is skipping
headers).
2010-09-30 11:04:21 +00:00
Gustavo André dos Santos Lopes 0db999a94f - Fixed bug #52944 (Invalid write on second and subsequent reads with an inflate filter fed invalid data). 2010-09-29 18:58:58 +00:00
Andrey Hristov 3113744c57 Fix a problem that leads to leaks in plugins that
use stmt local data - no free is called for statements
that are over-prepared
2010-09-29 13:18:07 +00:00
Andrey Hristov 517fd63c32 fix the test 2010-09-29 11:40:57 +00:00
Felipe Pena a5459c09c9 - Fixed bug #52947 (segfault when ssl stream option capture_peer_cert_chain used) 2010-09-29 01:25:35 +00:00
Andrey Hristov 22d73027d0 add another hook, maybe the last one, for MYSQLND_STMT, which
was missed before
2010-09-28 14:36:18 +00:00
Pierre Joye 6bae8fbd9c - Fixed possible flaw in open_basedir (CVE-2010-3436) 2010-09-28 13:30:30 +00:00
Pierre Joye edb4351004 - Fixed possible flaw in open_basedir (CVE-2010-3436) 2010-09-28 13:29:33 +00:00
Felipe Pena 2cd1661e2d - Fixed bug #52931 (strripos not overloaded with function overloading enabled) 2010-09-27 23:09:00 +00:00
Derick Rethans 761cc30055 - Updated to version 2010.13 (2010m) 2010-09-27 13:57:42 +00:00
Andrey Hristov 42a80fac8c Fixed bug #45921 (Can't initialize character set hebrew) 2010-09-27 12:35:59 +00:00
Andrey Hristov b080cfcc71 Fix the value, it was bumped 2010-09-27 11:23:01 +00:00
Adam Harvey 2d4c7b4033 Fix bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with large
amount of data).
2010-09-27 07:08:04 +00:00
Pierre Joye 4839387edd - fix bug #52926, zlib fopen wrapper does not use the context 2010-09-26 20:46:54 +00:00
Adam Harvey fc2ed1b5d0 MFH: fix phar phpinfo() tests. 2010-09-24 12:13:33 +00:00
Andrey Hristov 216effe4f5 WS fixes 2010-09-23 16:03:22 +00:00
Ulf Wendel 8bb124394b Let's try not to have 'uft8'-only tests and avoid setting the charset upon connect. I've changed the tests to make no assumptions on the server charset setting. var_dump()/EXPECTF tests got replaced with dynamic tests which try to take the current charset into account. 2010-09-23 15:08:43 +00:00
Ulf Wendel 389965f1de Merge from head: do not use deprecated function aliases. The test logic is unchanged. 2010-09-23 14:59:13 +00:00
Adam Harvey 107f916322 Fix up the vim folds in phar_object.c and add a note that the two prototypes
before Phar::__construct() are actually valid and not a mistake, per bug
#52909.
2010-09-23 04:41:14 +00:00
Pierre Joye f1d2e1453c - Fix #52908, fix declaration 2010-09-22 21:28:37 +00:00
Andrey Hristov bdaec773b5 Unify, force one charset at connect, thus fixing
test failures because different servers have different
system charsets.
2010-09-22 18:25:33 +00:00
Ulf Wendel 7f0ec2a127 Test update for sql_mode = ansi 2010-09-22 15:22:22 +00:00
Ulf Wendel 841c151b64 Test update for sql_mode = ANSI 2010-09-22 15:16:07 +00:00
Andrey Hristov ff27146950 small macro fix 2010-09-22 14:54:43 +00:00
Andrey Hristov 86c1364695 fix for bug 52891 - optimize a bit 2010-09-22 14:26:43 +00:00
Andrey Hristov b962a566af hier comes the news 2010-09-22 11:40:20 +00:00
Andrey Hristov 1de4cfb791 Fix for
Bug #52891 Wrong data inserted with mysqli/mysqlnd when using bind_param,value>LONG_MAX
2010-09-22 11:38:49 +00:00
Andrey Hristov 047f0e4d88 update tests 2010-09-22 11:09:29 +00:00
Ulf Wendel 2ff0c392e7 Trying to pimp gcov.php.net code coverage tests.. trying to cover mysqlnd compress code with a standard test run 2010-09-20 19:01:13 +00:00
Ulf Wendel 7f6d8e53fd Align test to the style used in the other tests 2010-09-20 18:26:11 +00:00
Ulf Wendel 1a40f20729 No reason not to run the tests with libmysql. Its long, long ago that pconnect has been a mysqlnd only feature 2010-09-20 17:26:39 +00:00
Ilia Alshanetsky 9aafc5d1c6 Fixed a compiler warning 2010-09-20 12:48:27 +00:00
Ulf Wendel c30edd027f Dont be strict on error messages, they can vary by server version 2010-09-20 09:04:48 +00:00
Andrey Hristov 531085785b add test case for 52891 2010-09-20 09:02:31 +00:00
Pierre Joye 63883d4970 - not needed here anymore 2010-09-18 14:54:40 +00:00
Ulf Wendel 2d656381f8 Skip if PDO_SQLITE is not available 2010-09-17 17:11:21 +00:00
Ulf Wendel fe726b1beb Remove OS dependent directory separator from EXPECT 2010-09-17 16:40:02 +00:00
Pierre Joye 88117e6128 - restore VOLUME_NAME_NT and VOLUME_NAME_DOS definition, thx Andrey for the headup 2010-09-17 11:34:49 +00:00
Pierre Joye 064578114f - WS 2010-09-16 19:15:26 +00:00
Pierre Joye 664f06616a - fix news 2010-09-15 16:59:57 +00:00
Andrey Hristov 17ae7c1659 remove unneeded proxy function _mysqlnd_restart_psessoin 2010-09-15 12:23:45 +00:00
Andrey Hristov d99ee78503 Remove unneeded proxy function _mysqlnd_end_psession 2010-09-15 12:11:33 +00:00
Adam Harvey 416240947b Fix bug #52849 (GNU MP invalid version match). 2010-09-15 10:51:55 +00:00
Ulf Wendel 0dc0d76854 Fix test 2010-09-15 08:20:15 +00:00
Felipe Pena 09ca429157 - Fixed bug #52843 (Segfault when optional parameters are not passed in to mssql_connect) 2010-09-15 02:12:46 +00:00
Andrey Hristov fc2143b993 unify magic quotes handling. Also fix a problem which
resulted in a longjmp in debug PHP,because of usage of
zval that is NULL in a hash context.
2010-09-14 16:09:42 +00:00
Jérôme Loyet 8c1582c9ad - remove a memory leak (missing efree()) 2010-09-14 15:33:43 +00:00
Johannes Schlüter 0631d2c59d - Don't be silent on bailout 2010-09-14 14:26:37 +00:00
Adam Harvey 877a6f92f0 Fix bug #52827 (cURL leaks handle and causes assertion error (CURLOPT_STDERR)).
Patch by Gustavo.
2010-09-14 10:58:59 +00:00
Pierre Joye 992991fe1b - fix #48831 php -i has different output to php --ini 2010-09-14 10:36:21 +00:00
Adam Harvey 1f06a6a4e8 Fix English in the error message emitted when json_decode() is called with
depth <= 0.
2010-09-14 03:46:28 +00:00
Kalle Sommer Nielsen 4119b09a1a Fixed bug #52772 (var_dump() doesn't check for the existence of get_class_name before calling it) 2010-09-13 20:14:18 +00:00
Pierre Joye f4da90705b - use php_sys_sat 2010-09-13 11:17:40 +00:00
Pierre Joye 25ac985422 - ws 2010-09-13 11:06:18 +00:00
Pierre Joye 65942d343f - sanity check for the path length and don't treat UNC as local path (no functional change, only less ops) 2010-09-13 10:58:18 +00:00
Pierre Joye 013727e1c7 - MFH 2010-09-13 10:30:21 +00:00
Pierre Joye e5323bde9a - silent warning 2010-09-13 10:28:45 +00:00
Pierre Joye ffd60af473 - use php_sys_lstat 2010-09-13 10:27:55 +00:00
Pierre Joye eafd04d172 - use php_sys_readlink 2010-09-13 09:30:07 +00:00
Pierre Joye 3a2f5c2219 - WS 2010-09-13 09:08:42 +00:00
Adam Harvey a7da07a15f Fix bug #52826 (phpinfo is incorrect for bzip2 stream wrapper). 2010-09-13 07:41:39 +00:00
Pierre Joye d97c07c265 - remove dummy wrapper for readfile 2010-09-11 19:07:43 +00:00
Felipe Pena 6ca2ea7109 - Fixed bug #49215 (make fails on glob_wrapper) 2010-09-10 21:33:50 +00:00
Pierre Joye 20944e2516 - use php_sys_readlink 2010-09-10 19:25:56 +00:00
Pierre Joye cd727b4e9a - remove 'UNC' from the target 2010-09-10 19:21:02 +00:00
Pierre Joye 77d307ccbf - open_basedir symlink support for Windows 2010-09-10 17:45:13 +00:00
Pierre Joye 2b04364852 - Implement bug #51804, splFileInfo::getLinkTarget() on Windows 2010-09-10 14:17:40 +00:00
Pierre Joye 391ff7682c - add php_sys_readlink 2010-09-10 14:01:44 +00:00
Adam Harvey 6e06a45f24 Fix bug #52802 (Out-of-date comment for
file_get_contents/php_stream_copy_to_mem) by updating the relevant comments.
2010-09-10 03:08:05 +00:00
Felipe Pena 03df7fce82 - Fixed test 2010-09-09 21:46:29 +00:00
Adam Harvey 97f6da74a1 Fixed bug #52744 (cal_days_in_month incorrect for December 1 BCE). Original
patch by gpap at internet dot gr.
2010-09-09 06:41:23 +00:00
Adam Harvey bcea4e69bb Fix bug #52786 (PHP should reset section to [PHP] after ini sections). Patch by
Fedora at famillecollet dot com.
2010-09-09 05:11:05 +00:00
Adam Harvey 7a2c4afa91 Fix bug ordering in NEWS. 2010-09-09 05:08:58 +00:00
Pierre Joye abd1af951c - fix the fix for bug #52323 2010-09-08 11:51:11 +00:00
Pierre Joye b310ce9ccc - WS 2010-09-08 10:26:59 +00:00
Pierre Joye ce82e028b2 - Fix bug #52323, return value of php_network_connect_socket should be set even if the caller does not care about the error_string 2010-09-08 10:25:40 +00:00
Pierre Joye 266ff49a9a - Fix #50524, proc_open should respect cwd as it does on other platforms 2010-09-08 08:34:57 +00:00
Jérôme Loyet 9a1623dc5f - remove FPM specific version which is irrelevant since FPM integration into core. 2010-09-07 22:03:43 +00:00
Jérôme Loyet c725c054d6 - Fixed bug #52498 (libevent was not only linked to php-fpm) 2010-09-07 21:12:28 +00:00
Pierre Joye f696aece3f - fix bug #50953, socket will not connect to IPv4 address when the host has both ipv4 and ipv6 addresses 2010-09-07 09:47:36 +00:00
Pierre Joye c286d482aa - links related fixes 2010-09-06 14:54:43 +00:00
Pierre Joye 80ddb8d95c - fix bug #52260, catch all DNS not found error 2010-09-06 10:57:42 +00:00
Pierre Joye 4275e7428b - timeval element are always 32bit long on Windows 2010-09-06 10:39:26 +00:00
Pierre Joye 6c08709bd6 - kill warning 2010-09-06 10:28:04 +00:00
Pierre Joye 329cab2942 - restore credits, fix 5.3 as well, aka do it right /cc Deric 2010-09-05 14:38:35 +00:00
Derick Rethans d30323b867 - Clean up the generated tmp-php.ini after make test has run. 2010-09-05 12:29:47 +00:00
Rasmus Lerdorf 8022e383ff This incorrect contraction started to get on my eyes after I saw it for the
87th time while struggling with an annoying SOAP service.
2010-09-03 22:24:08 +00:00
Ulf Wendel 4789901728 Test for http://bugs.php.net/52221. Test will fail with mysqlnd but should pass with libmysql. 2010-09-03 14:20:32 +00:00
Dmitry Stogov c7b95db5ab Fixed GC bug 2010-09-03 09:27:47 +00:00
Ulf Wendel 48814f96ef Fix test failure. Add new test for MYSQLI_OPT_INT_AND_FLOAT_NATIVE mysqlnd feature. 2010-09-02 14:57:38 +00:00
Pierre Joye edfe2e11db - add it for 5.3 as well 2010-09-02 10:32:32 +00:00
Stanislav Malyshev a54ac71371 Fix bug #50590 - IntlDateFormatter::parse result is limited to the integer range 2010-09-01 20:34:59 +00:00
Andrey Hristov 292785ed61 fix build on windows, seems this macro is not defined 2010-09-01 16:54:20 +00:00
Andrey Hristov 8220c2e4ce OPT_COMPRESS support for mysqlnd_conn::set_client_option
To be used by mysqli_options
2010-09-01 14:47:36 +00:00
Pierre Joye 13fd8fcded - WS 2010-09-01 10:16:48 +00:00
Pierre Joye 87bf415853 - sb needed only in safemode 2010-09-01 10:13:46 +00:00
Pierre Joye 6396a3272c - add lstat support for Windows 2010-09-01 09:49:53 +00:00
Jérôme Loyet 6b2b7046ed - Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they were not available). 2010-09-01 08:17:18 +00:00
Jérôme Loyet 5fd50c99cb - add 'max children reached' to the FPM status page. It shows how many times
a pool has reached the max_children parameter.
2010-08-31 14:49:16 +00:00
Ulf Wendel d27642fece PHP has changed (undefined) behaviour from 5.3.2 to 5.3.3: ->{} = , which seems to have been never an officially supported syntax and have never been a valid property name, is no longer allowed and PHP bails. 2010-08-31 14:43:02 +00:00
Timm Friebe c37b0c690a - MFT: Add ".so" suffix to checks on libsybct[64] bundles
# See patch by royanee at yahoo dot com @ bug #45357
2010-08-31 12:28:30 +00:00
Jérôme Loyet cbd21afae9 - Add libevent version to the startup debug log in FPM. 2010-08-31 09:41:04 +00:00
Jérôme Loyet 0605d5f309 - Changed listen.backlog in the FPM configuration file to default to 128
instead of -1 (except on FreeBSD and OpenBSD). This is the same value 
  as the one used in the cgi sapi. This patch completes revision 302725.
2010-08-31 09:33:53 +00:00
Felipe Pena c0840f18f3 - Fixed crash on non-Windows build 2010-08-30 21:34:54 +00:00
Andrey Hristov 77d650908d here comes the news 2010-08-30 18:13:28 +00:00
Andrey Hristov 72bef34918 Fix for MySQL Bug #49406
Binding params doesn't work when selecting a date inside a CASE-WHEN
(http://bugs.mysql.com/bug.php?id=49406)
The MySQL server sends MYSQL_TYPE_NEWDATE values as clear text, even
when PS are used and thus the binary protocol are used. Changing the
handler for the type.
2010-08-30 18:10:23 +00:00
Pierre Joye c55632007e - fix possible leak and error while fetching PHPRC 2010-08-30 17:05:56 +00:00
Ulf Wendel f671ad6275 Adding MYSQLI_OPT_SSL_VERIFY_SERVER_CERT for use with mysqli_options(). 2010-08-30 16:59:10 +00:00
Pierre Joye 71966d1e5a - WS 2010-08-30 16:52:48 +00:00
Derick Rethans b8837a79b2 - Tests for bug #52342 (DateTime setIsoDate results in wrong timestamp). 2010-08-30 16:48:21 +00:00
Derick Rethans adbf9e766e - Added test file that I forgot to commit. 2010-08-30 16:47:46 +00:00
Derick Rethans bb8ec8d629 - Fixed bug #52430 (date_parse parse 24:xx:xx as valid time). (Derick) 2010-08-30 16:40:29 +00:00
Derick Rethans aa82af78e4 - Fixed bug #52454 (Relative dates and getTimestamp increments by one day) 2010-08-30 16:25:52 +00:00
Derick Rethans 83a2d6e96e - Test for (non-)bug #52577. 2010-08-30 15:40:36 +00:00
Derick Rethans 550e18eaed - Added test for bug #46874 (same as #52668). 2010-08-30 15:35:41 +00:00
Derick Rethans bd184cc572 - Fixed bug #52668 (Iterating over a dateperiod twice is broken). 2010-08-30 15:32:09 +00:00
Jérôme Loyet a7057e4e49 - only one process (for all pools) could be killed by the 'dynamic' process manager. Now it's one process per pool which can be killed by the 'dynamic' process manager.
- rename nonsense variable (i)
2010-08-30 15:21:31 +00:00
Ulf Wendel d0e7e5aa2a If you add functions to the PDO core, take care not to break other PDO drivers tests, document the function and provide a function test for the PDO core to check your default/fallback implementation. 2010-08-30 09:20:48 +00:00
Ilia Alshanetsky a12d2bf747 Fixed a compiler warning 2010-08-27 19:43:08 +00:00
Pierre Joye 3c3ddb39b4 - WS 2010-08-27 10:09:52 +00:00
Andrey Hristov d9f50d95e3 Add proper magic_quotes_runtime support for mysqlnd, but
in mysqli, so we don't need to tamper myslqnd.
magic_quotes_runtime are deprecated and not existant in 5.4, thus
only fixing in the branch.
2010-08-26 14:51:58 +00:00
Pierre Joye a5e51efff8 - Symlink resolution fails when target is a DFS path 2010-08-26 14:23:17 +00:00
Ulf Wendel 6338f99d52 Test for http://bugs.mysql.com/bug.php?id=49406, Binding params doesn't work when selecting a date inside a CASE-WHEN 2010-08-26 13:35:20 +00:00
Felipe Pena 8fba11c57b - Fixed bug #52699 (PDO bindValue writes long int 32bit enum) 2010-08-25 22:03:03 +00:00
Andrey Hristov 07986a53e3 here comes the news 2010-08-25 15:07:34 +00:00
Andrey Hristov ab778e7414 Fix for bug #52221 Misbehaviour of magic_quotes_runtime (get/set)) 2010-08-25 15:06:47 +00:00
Andrey Hristov 7a83093a3b fix the build. two mysqli functions were missing after
recent commit - set_charset and get_charset
2010-08-25 15:02:02 +00:00
Pierre Joye adcf926b80 - CVE # for mops 2010-24 2010-08-25 14:27:39 +00:00
Adam Harvey c783495edf Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header). 2010-08-25 06:07:22 +00:00
Jérôme Loyet f9c6bb1ad8 - Fixed bug #52674 (FPM Status page returns inconsistent Content-Type headers). 2010-08-23 20:40:44 +00:00
Pierre Joye 411d090895 -fix logic (and BC break) 2010-08-23 18:05:05 +00:00
Pierre Joye b9d73bb910 - WS 2010-08-23 17:16:17 +00:00
Pierre Joye a6c5363f05 - revert fix for #52655, rev. 302614 2010-08-23 17:01:44 +00:00
Pierre Joye 6326528127 - add follow_location support for http stream, enabled by default to keep BC. Allows one to ignore the location header, w/o having to ignore errors or other tricks, the location data is however still available (meta) 2010-08-23 16:54:57 +00:00
Pierre Joye 1d7ce1aae0 - fix string validation entry, mops-2010-24 2010-08-23 14:25:48 +00:00
Kalle Sommer Nielsen 3947bfeadf Fixed bug #52655 (SimpleXMLIterator supports ArrayAccess without implementing the interface) 2010-08-21 16:22:46 +00:00
Felipe Pena da3743b7b9 - Added missing void parameter checks 2010-08-21 16:09:18 +00:00
Jérôme Loyet 6db49b7864 - Fix #52407 (use __sync_bool_compare_and_swap in fpm_atomic.h if gcc >= 4.1 is used - credit to geissert) 2010-08-21 06:46:18 +00:00
Jérôme Loyet 1f3aaf508c - typo (thx to sixd) 2010-08-20 17:00:57 +00:00
Pierre Joye 0f58370215 - fix string validation, MOPS-2010-24 2010-08-20 16:37:33 +00:00
Andrey Hristov 4348f9e163 svn up messed this 2010-08-20 15:39:03 +00:00
Andrey Hristov bb89f5c275 here comes the news 2010-08-20 12:29:59 +00:00
Andrey Hristov 27567040d2 Fix for bug #52654 mysqli doesn't install headers with structures it uses 2010-08-20 12:25:17 +00:00
Jérôme Loyet 72064e1a28 Fix #52609 (INI scanner did not use ZEND_INI_SCANNER_NORMAL) 2010-08-20 08:33:57 +00:00
Ilia Alshanetsky 06c460c995 Fixed bug #52599 (iconv output handler outputs incorrect content type when flags are used). 2010-08-19 12:27:13 +00:00
Kalle Sommer Nielsen 0b1477a716 Use userland function name, not internal name for NEWS 2010-08-18 20:26:42 +00:00
Kalle Sommer Nielsen e92ebce7f8 Fixed possible crash in php_mssql_get_column_content_without_type()
# Also fix NEWS entry in PHP_5_2 for previous commit
2010-08-18 20:16:05 +00:00
Kalle Sommer Nielsen c2c3467ab4 Fixed bug #52636 (php_mysql_fetch_hash writes long value into int)
# Tested by rein at basefarm dot no
2010-08-18 20:00:18 +00:00
Felipe Pena 2fb2f81538 - Improved fix for bug #52573 2010-08-18 01:59:37 +00:00
Andrey Hristov ed806c4461 here comes the news 2010-08-17 18:10:08 +00:00
Andrey Hristov 2a926ec6ec Fix for Bug #52613 crash in mysqlnd 2010-08-17 18:08:25 +00:00
Andrey Hristov 33c7b63c6c Update with PHP_DEF_FE, also update the test 2010-08-17 18:07:11 +00:00
Kalle Sommer Nielsen a109c3538f Fix my fix for arginfo, trunk patch will follow shortly 2010-08-17 13:34:11 +00:00
Kalle Sommer Nielsen 5a3624221b Fixed the $context parameter on copy() to have an effect (approved for 5.3 by Johannes)
# To not change a PHPAPI in a point release, a new function have been added to support contexts:
# php_copy_file_ctx(), php_copy_file_ex() now simply wraps to that
2010-08-17 12:17:28 +00:00
Kalle Sommer Nielsen a780e73f62 Fix arginfo for copy(), see r302376 for more info 2010-08-16 21:59:42 +00:00
Kalle Sommer Nielsen cee97080d1 Fixed bug #50836 (run_tests.php alerts syntax errors while testing session) 2010-08-16 20:56:00 +00:00
Andrey Hristov c204922c7f Added utf16 and utf32 support, as in MySQL 5.5, in mysqlnd.
Fixed tests, so they don't try to use SET NAMES utf16|utf32,
as character_set_client can't be set to those (the lexer can't
read ucs2, utf16 and utf32).
Added support for 4-byte utf8, as found in MySQL 5.5
2010-08-16 17:44:50 +00:00
Andrey Hristov 0a9ca62a77 Fix test, so it doesn't fail with MySQL 5.5, where InnoDB
is the default engine
2010-08-16 16:15:15 +00:00
Andrey Hristov 4d72dba301 detect easily which charset doesn't work 2010-08-16 16:13:55 +00:00
Derick Rethans e577899507 - Updated to version 2010.12 (2010l) 2010-08-16 12:48:53 +00:00
Pierre Joye 894dc2480c - WS 2010-08-16 10:29:01 +00:00
Andrey Hristov f8e312ea27 Here comes the news 2010-08-16 09:45:26 +00:00
Andrey Hristov 2f2cdc6a51 Sync with trunk, fixes build failure on MacOSX.
Fix for Bug #52417 MySQLi build failure with mysqlnd
2010-08-16 09:44:13 +00:00
Derick Rethans 6c579efc43 - Updated to version 2010.11 (2010k) 2010-08-16 09:32:51 +00:00
Dmitry Stogov 7ca414f5e7 Bug #52361 (Throwing an exception in a destructor causes invalid catching) 2010-08-16 09:20:46 +00:00
Dmitry Stogov 890c709036 Fixed memory leaks (related to bug #52361) 2010-08-16 08:11:08 +00:00
Kalle Sommer Nielsen 61a1bad720 Fixed bug #52593 (exif is placed before mbstring in php.ini) 2010-08-16 00:26:39 +00:00
Pierre Joye 4588d5d79f - #52607, fix ENV conflit with win SDK 7.1 2010-08-15 13:54:03 +00:00
Pierre Joye bb669f2c1b - year++ 2010-08-15 13:40:29 +00:00
Pierre Joye 1bd381890d - #52607, fix ENV conflit with win SDK 7.1 2010-08-15 03:38:08 +00:00
Ilia Alshanetsky bbeafa1dcf Win32 build fixes 2010-08-14 14:47:49 +00:00
Ilia Alshanetsky 842bc947e2 Upgraded bundled Sqlite3 to version 3.7.0.1 2010-08-14 14:44:39 +00:00
Ilia Alshanetsky c5602787fc MFH: Upgraded bundled PCRE to version 8.10. 2010-08-14 14:37:13 +00:00
Felipe Pena c101964325 - Fixed the fix for bug #52546 2010-08-13 22:12:37 +00:00
Kalle Sommer Nielsen e72a69aae6 Changed mysqli_report() to be per-request specific rather than per-process specific (Fixes #52390) 2010-08-13 10:43:15 +00:00
Andrey Hristov a6100682d0 Fix for bug #52413 MySQLi build failure on OS X 2010-08-13 09:57:04 +00:00
Andrey Hristov 973e134d2d Fix for bug #52433 Call to undefined method mysqli::poll() 2010-08-13 09:18:06 +00:00
Sascha Schumann 14edb68858 - fix cast 2010-08-12 17:28:08 +00:00
Andrey Hristov 8409cb44b2 Make this function static, as it is used only in this file.
Add additional comment about how it works.
2010-08-12 14:17:31 +00:00
Andrey Hristov 6fc06f265e Allocate memory in a burst mode, and later use it. Increases
locality of the data.
Also use MYSQLND_INC_CONN_STATISTIC in one place, instead of
two, thus removing code duplication from macro expansion - less
code to fit in the instruction cache.
2010-08-12 13:23:16 +00:00
Andrey Hristov 92ef63a07b Switch from using PHP_MAJOR_VERSION to separate define for
unicode. Unicode is no more, but these are "bookmarks" where
to change mysqlnd, if Unicode becomes trendy again.
2010-08-12 12:02:02 +00:00
Andrey Hristov 8bf7114691 ws + cs 2010-08-12 11:38:08 +00:00
Sascha Schumann 50a0ea7b8c separate properties of internal classes in ZTS mode fully,
otherwise multiple threads will modify the zvals' contents
without any synchronisation.
2010-08-12 07:58:14 +00:00
Kalle Sommer Nielsen 49f22527cc Fixed bug #50804 (Document configure.js --enable-crt-debug) 2010-08-11 22:38:15 +00:00
Kalle Sommer Nielsen 1e4d963734 Ignore the x64 directory for Windows x64 builds 2010-08-11 21:26:09 +00:00
Kalle Sommer Nielsen 1178d719ea Seems like this one skipped the commit (E_ERROR -> E_CORE_ERROR) for zend.ze1_compatibility_mode (re #52570) 2010-08-11 21:18:45 +00:00
Kalle Sommer Nielsen 8deefa8780 Changed deprecated ini options on startup from E_WARNING to E_DEPRECATED (Fixes #52570)
# Trunk patch will follow shortly
2010-08-11 21:12:18 +00:00
Dmitry Stogov 7d55780ca0 In ZTS mode default properties and constants of internal classes can't be modified in place and have to be separated 2010-08-11 09:38:41 +00:00
Felipe Pena 658272c9ee - Fixed bug #52573 (SplFileObject::fscanf Segmentation fault) 2010-08-10 22:37:24 +00:00
Andrey Hristov 0d3d292633 Fix Request #52302 mysqli_fetch_all does not work with MYSQLI_USE_RESULT 2010-08-09 17:29:30 +00:00
Andrey Hristov f8c2680509 Lay foundations for named pipe support in mysqlnd 2010-08-09 17:01:57 +00:00
Pierre Joye cf7d0fb4e7 - #52523, fix logic (0 is perfectly valid as part of the data, bin data) 2010-08-09 08:14:14 +00:00
Pierre Joye 1e26362d4b - WS 2010-08-09 07:32:21 +00:00
Felipe Pena 904b9282fe - Fixed bug #50481 (Storing many SPLFixedArray in an array crashes) 2010-08-08 23:56:29 +00:00
Ilia Alshanetsky 7ab1a74f49 Additional fix for bug #52550 & fix test & warning from previous fixes 2010-08-08 15:45:02 +00:00
Christopher Jones d0dc4810eb Fixed bug #51610 (Using oci_connect causes PHP to take a long time to exit). Do PECL OCI8 1.4.3 release 2010-08-07 00:24:26 +00:00
Felipe Pena afed1468e4 - Added missing SKIPIF 2010-08-06 23:05:39 +00:00
Felipe Pena f4644c8c85 - Fix test 2010-08-06 23:01:32 +00:00
Felipe Pena 07c1929a7a - Fixed bug #52533 (ext/curl/tests/curl_multi_getcontent_basic3.phpt broken due php.net/robots.txt)
patch by: glen at delfi dot ee
2010-08-06 22:57:41 +00:00
Felipe Pena 8be696d143 - Updated generated file 2010-08-06 22:23:10 +00:00
Felipe Pena 7e8ec822a5 - Fix build 2010-08-06 22:21:13 +00:00
Johannes Schlüter 97317c7b1e - ext_skelshould create a .svnignore not .cvsignore these days 2010-08-06 22:19:47 +00:00
Christopher Jones a59ffde6bc Release PECL OCI8 1.4.2 2010-08-06 22:12:48 +00:00
Ilia Alshanetsky fbe6499d46 WS 2010-08-06 20:16:11 +00:00
Ilia Alshanetsky 231d8dd526 Another fix for issue indentified in bug #52550 2010-08-06 20:04:29 +00:00
Ilia Alshanetsky c0edb4afce Fixed issues inside str_pad() identified by bug #52550 2010-08-06 19:55:10 +00:00
David Soria Parra 9d02d50df2 make ssl_set return value in mysqlnd compatible with libmysqli return value 2010-08-06 19:47:03 +00:00
Ilia Alshanetsky 64ceec13f2 Use correct order of operations. Second of many fixes for bug #52550 2010-08-06 19:11:34 +00:00
Rasmus Lerdorf 0d1ab2f6ac Fix 5.3 as well 2010-08-06 18:20:41 +00:00
Felipe Pena f171aefb31 - Fixed bug #52546 (pdo_dblib segmentation fault when iterating MONEY values) 2010-08-05 23:32:18 +00:00
Felipe Pena 1e17bb2aab - Fixed bug #52534 (var_export array with negative key) 2010-08-04 23:11:44 +00:00
Jérôme Loyet 5fe988518a BUG: all value comparaisons were not case insensitive in the conf file parser 2010-08-02 21:46:52 +00:00
Jérôme Loyet c80e055c9c typo 2010-08-02 09:28:54 +00:00
Jérôme Loyet 1c50d5385d correct php-fpm.conf: slowlog has no default value 2010-08-02 09:02:48 +00:00
Felipe Pena 6150174941 - Fixed bug #52468 (wddx_deserialize corrupts integer field value when left empty) 2010-08-01 17:34:09 +00:00
Felipe Pena 3ef14fc609 - Fixed bug #52508 (newline problem with parse_ini_file+INI_SCANNER_RAW) 2010-08-01 15:26:54 +00:00
Felipe Pena c0e6f37cb9 - Fixed bug #52484 (__set() ignores setting properties with empty names) 2010-08-01 13:27:02 +00:00
Felipe Pena cb1d315b7d - Fix tests 2010-07-31 22:10:43 +00:00
Felipe Pena 30a8dcff1b - New test 2010-07-29 23:46:49 +00:00
Felipe Pena e3ddef53b4 - Fixed bug #52487 (PDO::FETCH_INTO leaks memory) 2010-07-29 23:38:55 +00:00
Jérôme Loyet 4445c85d4f - Fixed bug #52476 (move php-fpm man page from section 1 to section 8) 2010-07-29 22:07:00 +00:00
Raphael Geissert 444bba79ba Fix required facilities for php-fpm's init script
$all should only be used in rare, and very specific, cases.
2010-07-29 19:13:42 +00:00
Pierre Joye 110fab9803 - fix build 2010-07-29 11:58:41 +00:00
Sriram Natarajan a0bf0739a9 - Fixed bug #52436 (Compile error in pcre if systems do not have stdint.h)
# PCRE's config.h can very well reuse the definitions made available from
# PHP's configure script output available within php_config.h
2010-07-27 21:42:22 +00:00
Pierre Joye ed4f6dbd36 - make libsasl optional (as vc6 bins do not have it) 2010-07-26 22:28:38 +00:00
Rasmus Lerdorf 94286b35e3 Let's keep NEWS entries to things that might affect users.
A typo in a comment isn't very news-worthy.
2010-07-23 15:52:34 +00:00
Adam Harvey 3aceb07efd MFH: fix bug #52380 (Typo in lcfirst comment docs). 2010-07-23 09:02:14 +00:00
Adam Harvey ebc6982eb8 Correct bug ID in the NEWS file for posterity. 2010-07-23 08:58:03 +00:00
Johannes Schlüter 200b139c69 - Back to -dev 2010-07-22 11:08:31 +00:00
Johannes Schlüter 6212b88ef3 - PHP 5.3.3 2010-07-21 10:50:07 +00:00
Johannes Schlüter 72ff4aac7e - merge NEWS for 5.2.14 and 5.3.3 2010-07-21 09:02:45 +00:00
Pierre Joye 426e14a6ed - add CVE # 2010-07-20 09:26:29 +00:00
Adam Harvey 5ce0bb46f6 MFH: fix for bug #52317 (Segmentation fault when using mail() on a rhel 4.x
(only 64 bit)).
2010-07-19 13:38:53 +00:00
Adam Harvey 2e1cd1e133 Revert r301354, since we don't need a test for a bogus bug. 2010-07-19 09:58:19 +00:00
Kai Schroeder 5126ac9ab0 Test for #50475 2010-07-17 23:29:52 +00:00
Kai Schroeder c11850b406 Test for #51819 2010-07-17 23:20:24 +00:00
Kai Schroeder b1fb44660d Test for #48187 2010-07-17 22:47:13 +00:00
Kai Schroeder 221c71032f Test for #51994 2010-07-17 22:17:48 +00:00
Kai Schroeder d53e8cfb83 Test for #52290 2010-07-17 21:57:16 +00:00
Kai Schroeder ede218d54c Test for #52359 2010-07-17 21:26:01 +00:00
Andrey Hristov a30113b617 Fix for Bug #51583 Bus error due to wrong alignment in mysqlnd 2010-07-15 16:57:14 +00:00
Pierre Joye 1dc9e43cd0 - fix vc6 build 2010-07-15 00:13:20 +00:00
Johannes Schlüter 50554563af Back to -dev 2010-07-14 23:40:42 +00:00
Johannes Schlüter 6d85947b52 PHP 5.3.3RC3 2010-07-14 23:01:42 +00:00
Dmitry Stogov 4c961e9045 Fixed incorrect reinitialization 2010-07-14 10:27:08 +00:00
Kalle Sommer Nielsen d733338225 Update the re2c files aswell (bug #51943) 2010-07-14 00:04:43 +00:00
Kalle Sommer Nielsen e71ee33358 Fixed bug #51943 (Several files are out of ANSI spec)
# Based on patch by CoreyStup at gmail dot com
2010-07-13 23:59:54 +00:00
Kalle Sommer Nielsen 00fabe553a MFT: Fixed bug #52037 (Concurrent builds fail in install-programs) -- Patch by Seanius at debian dot org
# Sorry for the non sparse commit, due to a broken co
2010-07-13 17:24:13 +00:00
Andrey Hristov e6dc3a5cbc Give an error when USE_RESULT is used with fetch_all 2010-07-13 13:02:00 +00:00
Scott MacVicar c02f6724a8 Doing this as a seperate commit unless we need to back it out.
Fix a bug when var_export() causes a fatal error that could inadvertently display data due to flushing of the output buffer.

Examples include, memory limit, execution time and recursion.
2010-07-09 21:19:27 +00:00
Andrey Hristov f20dd1f9ae adding arginfo to mysqli fixed the bug 2010-07-08 10:18:46 +00:00
Felipe Pena 5f790678ec - Fixed ZTS build 2010-07-07 22:46:54 +00:00
Etienne Kneuss a3bf7aa4fe Fixed #51697 (Unsafe operations in free_storage of SPL iterators,
causes crashes during shutdown)
2010-07-07 21:55:17 +00:00
George Wang 6106c44c10 applied patch from bug report 51452 2010-07-07 20:03:04 +00:00
Andrey Hristov e670162315 Cleanup in trunk. Remove some functions, noted in
UPGRADING. sed-ed the tests to change the usage
to the real function name.
2010-07-07 12:09:36 +00:00
Andrey Hristov ce1bd65d29 arginfo for mysqli, was too fast to commit in trunk instead of one
directory up, thus the patch was split in two.
2010-07-07 11:37:35 +00:00
Timm Friebe a4ff8bce62 - MFT: Added -DSYB_LP64 to CFLAGS on 64 bit platforms
- MFT: Added checks for 64 bit versions of sybase libraries
- MFT: Added checks for sybase libraries prefixed with "libsyb"
2010-07-07 10:15:24 +00:00
Scott MacVicar e1ce0a64ea Fix bug #52262 - Invalid UTF-8 documents don't set an error code when they fail to decode. 2010-07-06 17:01:30 +00:00
Antony Dovgal 336b5af34b fix typos and use correct directive names in error messages 2010-07-06 11:37:19 +00:00
Felipe Pena a4d1188313 - Fixed tests 2010-07-06 00:25:52 +00:00
Dmitry Stogov 09d8bbb2ee Fixed bug #52237 (Crash when passing the reference of the property of a non-object) 2010-07-05 09:08:35 +00:00
Felipe Pena 0891e86ed8 - Fixed bug #52240 (hash_copy() does not copy the HMAC key, causes wrong results and PHP crashes) 2010-07-03 13:06:14 +00:00
Johannes Schlüter e46fee1d1a Fix bug #52238: Crash when an Exception occured in iterator_to_array 2010-07-02 19:17:45 +00:00
Johannes Schlüter c06a26a524 Back to -dev 2010-07-02 07:32:05 +00:00
Eric Stewart 3b38626603 Added test for bug 52013 to PHP_5_3. 2010-07-02 02:46:43 +00:00
Johannes Schlüter 2b48156eab 5.3.3 RC2 2010-07-01 15:44:18 +00:00
Felipe Pena 92ba590555 - BFN 2010-07-01 01:12:21 +00:00
Pierre Joye 1fe5265c3e - WS 2010-06-30 22:06:49 +00:00
Ilia Alshanetsky 112ac7e978 Fixed bug #33210 (getimagesize() fails to detect width/height on certain JPEGs). 2010-06-30 12:21:35 +00:00
Stanislav Malyshev af2d266a09 sync version with PECL 2010-06-30 04:23:32 +00:00
Felipe Pena 4e606e3ceb - Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3) 2010-06-30 02:45:10 +00:00
Felipe Pena 96bb25e8e7 - Reverted fix for bug #48930 (due binary compatibility breakage) 2010-06-29 11:37:13 +00:00
Stanislav Malyshev 865f85718f fix SplObjectStorage unserialization (CVE-2010-2225) 2010-06-29 00:58:31 +00:00
Pierre Joye 9c60bd8df7 - typo for iconv DLL .lib 2010-06-28 23:26:48 +00:00
Felipe Pena a8e80ec235 - Reverted fix for bug #51421 2010-06-28 16:37:57 +00:00
Felipe Pena 0488a86634 - Fix arginfo name 2010-06-28 01:19:08 +00:00
Felipe Pena ced29dd706 - Improved initialization 2010-06-27 22:13:41 +00:00
Felipe Pena 9b07568c43 - Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3) 2010-06-27 21:46:16 +00:00
Felipe Pena 0cc45e7bdb - BFN 2010-06-26 22:07:04 +00:00
Felipe Pena 10a9634bc9 - Fixed bug #51421 (Abstract __construct constructor argument list not enforced) 2010-06-26 22:05:13 +00:00
Felipe Pena eb5e97adf5 - Fixed bug #52160 (Invalid E_STRICT redefined constructor error) 2010-06-26 19:19:16 +00:00
Felipe Pena 419f589580 - Fixed tests 2010-06-26 17:17:47 +00:00
Felipe Pena 9ea7a70e24 - Fixed bug #52193 (converting closure to array yields empty array) 2010-06-26 17:14:33 +00:00
Felipe Pena e64734f986 - Fixed bug #52183 (Reflectionfunction reports invalid number of arguments for function aliases) 2010-06-26 16:03:39 +00:00
Christopher Jones 22458ed4d5 Remove hard coded lib extension. Prepare for OCI8 1.4.2 release 2010-06-25 21:18:09 +00:00
Christopher Jones 86544f5971 Fix bug #52186 (phpinfo shows 10.1 or 11.1 when installed with ORACLE_HOME 10.2 or 11.2) 2010-06-25 21:09:13 +00:00
Felipe Pena 5a3a34e3e6 - Fixed bug #52138 (Constants are parsed into the ini file for section names) 2010-06-24 22:32:42 +00:00
Andrey Hristov 89bd3af6b9 Two functions, which should be methods so one can catch
their output, for example
2010-06-24 19:52:13 +00:00
Pierre Joye d27d572a7d - typo 2010-06-24 00:15:12 +00:00
Sriram Natarajan 2bb9bbb803 - Fixed bug #52162 (custom request header variables with numbers are removed) 2010-06-23 19:06:33 +00:00
Johannes Schlüter 08e1471c16 Install SQLite3 header 2010-06-23 15:11:02 +00:00
Andrey Hristov 53324e8830 Fix sprintf modifiers all around the place. In most cases
%u should be used. Where size_t is used then MYSQLND_SZ_T_SPEC should be
the modifier
2010-06-21 15:32:26 +00:00
Andrey Hristov 698539fa79 fix valgrind warnings on 64bit, thread_is is strictly 32bit 2010-06-21 14:49:45 +00:00
Ilia Alshanetsky 6b990988f1 MFB: Implemented FR #51295 (SQLite3::busyTimeout not existing). (Mark) 2010-06-21 11:06:31 +00:00
Pierre Joye 6ee4060bfa - #45808, stream_socket_enable_crypto() blocks and eats CPU 2010-06-20 16:33:16 +00:00
Felipe Pena c6e852d7db - Completed the fix for bug #52010
# Fixing pdo drivers
2010-06-20 14:12:06 +00:00
Jérôme Loyet ffdd175918 - Fixed bug #52086 (No new line at the end of a included file crahes the PHP FPM daemon) 2010-06-19 16:31:19 +00:00
Andrey Hristov 5a4a66cdd5 Fix for bug #52115 mysqli_result::fetch_all returns null, not an empty array 2010-06-18 17:25:41 +00:00
Andrey Hristov 6b730a04ae missed this one in the last commit, the real type 2010-06-18 12:00:57 +00:00
Andrey Hristov 7f79e86886 fix type mismatch, this is fresh misunderstanding 2010-06-18 11:56:25 +00:00
Johannes Schlüter 7d0eedf08c - Ignore empty filename for mail.log, treat it like none given 2010-06-18 10:16:35 +00:00
Ulf Wendel f3448471df Don't bail if there is another extension that exports constants starting with mysql<something> 2010-06-18 09:56:18 +00:00
Johannes Schlüter d52e132203 back to -dev 2010-06-18 08:22:14 +00:00
Johannes Schlüter 8661e8d298 PHP 5.3.3RC1 2010-06-17 17:16:57 +00:00
Johannes Schlüter 8a142cb861 5.3.3RC1 2010-06-17 17:10:16 +00:00
Pierre Joye a46cb6b513 - fix build 2010-06-17 16:56:48 +00:00
Johannes Schlüter 06c987663a - 80 lines are nice, sentences stop with a period
- Merge in 5.3.2 NEWS ...
2010-06-17 12:31:57 +00:00
Andrey Hristov ae4ae5a313 split mysqlnd_connect() in two parts, one doing the authorization 2010-06-17 11:37:49 +00:00
Pierre Joye c4c6b69b64 - #51424 2010-06-17 10:22:51 +00:00
Pierre Joye 84f3b13264 - #51424, solaris part 2010-06-17 10:22:03 +00:00
Pierre Joye 49418ce7da - Fix bug #52101, dns_get_record()garbage in 'ipv6' field 2010-06-17 09:26:29 +00:00
Felipe Pena d4746a659e - BFN 2010-06-16 23:40:23 +00:00
Felipe Pena 42c4bafbbd - New tests related to #52098 2010-06-16 23:33:01 +00:00
Felipe Pena d596ea742a - Fix crash when calling a method of a class that inherits PDOStatement if instantiated directly 2010-06-16 23:13:29 +00:00
Andrey Hristov d47e50a9ff no more needed because of the charset fix in the previous changeset 2010-06-16 19:01:13 +00:00
Pierre Joye cfd930d218 - #50563, removing E_WARNING from parse_url() 2010-06-16 18:56:24 +00:00
Pierre Joye 4029454a0d - Fix bug #50578, incorrect shebang in phar.phar 2010-06-16 18:30:35 +00:00
Timm Friebe ec54570362 - MFT: Fixed segmentation fault when reading rows
# Problem surfaces when using FreeTDS, ASE 12.5 and reading text fields
# with NULL values. This is essentially a workaround for a bug in Free-
# TDS which is not setting the NULL indicators correctly, but provides
# a protection against possible segfaults if any other driver ever does
# this again:-)
2010-06-16 09:49:25 +00:00
Antony Dovgal 3896e7403d improve ptrace() test
change error to warning - there can be no trace method available at all
2010-06-16 08:58:42 +00:00
Ben Longden ddc9246071 Merged SplFileObject::fgetcsv tests from trunk 2010-06-15 21:42:04 +00:00
Felipe Pena f310305fc2 - New entries 2010-06-15 19:37:20 +00:00
Pierre Joye 2cfb5e4254 - Fix #51002, fix possible memory corruption with very long names 2010-06-15 18:48:33 +00:00
Pierre Joye 33ac0d0e33 - cleanup, no vc6 support in trunk 2010-06-15 13:50:14 +00:00
Pierre Joye d686b7579a - #51424, silent warnings on win 2010-06-15 13:43:15 +00:00
Ben Longden d1c912628d Merged SplTempFileObject tests from trunk 2010-06-15 11:20:21 +00:00
Ilia Alshanetsky 24b8bc3489 Removed the in_transaction handler for 5.3 to avoid BC break due to structure change 2010-06-15 11:13:20 +00:00
Pierre Joye 8fcd33ed18 - Fix #51424, crypt() function hangs after 3rd call 2010-06-15 09:26:06 +00:00
Dmitry Stogov 3d5f729181 Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function) 2010-06-15 08:22:51 +00:00
Andrey Hristov 0da5464a81 Fix the test for libmysql, which expects the certificates
to be in the directory where the interpreter is started. When
using mysqlnd they should not include path and will be found
in the directory of the script.
2010-06-14 18:23:17 +00:00
Andrey Hristov 83051b1a86 And a fix for MySQL Server which is pre 5.1.23, which doesn't support
preserving of the charset when performing change_user. This is libmysql
only code.
2010-06-14 18:19:13 +00:00
Andrey Hristov 1d9c49bb3c Fixed bug #52082 (character_set_client & character_set_connection reset after
mysqli_change_user())

libmysql >= 5.1.23 will PASS, older library versions will fail
2010-06-14 17:16:20 +00:00
Pierre Joye 0296501274 - MFH 2010-06-14 09:56:50 +00:00
Pierre Joye 22df3125d5 - drop comment 2010-06-14 09:15:20 +00:00
Pierre Joye d652e02235 - #52043,GD doesn't recognize latest libJPEG version 2010-06-14 08:12:10 +00:00
Jérôme Loyet 205775507a Fix #52067, chroot and chdir path were not checked at startup. If configured with unexistant directories, FPM entered in an error loop. 2010-06-13 10:30:35 +00:00
Felipe Pena 764a95f6f3 - Fixed bug #49320 (PDO returns null when SQLite connection fails) 2010-06-12 22:04:48 +00:00
Felipe Pena f1e02c5cc7 - Fixed bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+) 2010-06-12 15:30:21 +00:00
Felipe Pena 4d3944f941 - Fixed bug #52057 (ReflectionClass fails on Closure class) 2010-06-11 23:37:55 +00:00
Felipe Pena 5eb64a4957 - Fixed bug #52060 (Memory leak when passing a closure to method_exists()) 2010-06-11 23:20:13 +00:00
Patrick Allaert 899bc2f582 - Fixed bug #52019 (make lcov doesn't support TESTS variable anymore) 2010-06-11 14:04:57 +00:00
Dmitry Stogov d24c14cb59 Fixed bug #51552 (debug_backtrace() causes segmentation fault and/or memory issues) 2010-06-11 08:53:31 +00:00
Ulf Wendel afcb62ba1e Fixing tests 2010-06-10 13:40:13 +00:00
Andrey Hristov 7aaef918a6 export mysqlnd_globals_id, per Johannes 2010-06-10 12:24:03 +00:00
Ilia Alshanetsky 90906a91e9 Added inTransaction() method to PDO, with specialized support for Postgres 2010-06-10 12:11:19 +00:00
Dmitry Stogov 748dd20476 Fixed bug #51822i (Segfault with strange __destruct() for static class variables) 2010-06-10 11:45:51 +00:00
Ilia Alshanetsky 9daa864c4f Added support for copy to/from array/file for pdo_pgsql extension.
# original patch by Denis Gasparin
2010-06-10 11:11:29 +00:00
Andrey Hristov e692080fc5 void functions return nothing 2010-06-10 09:37:58 +00:00
Dmitry Stogov cac310d87e Fixed bug #52001 (Memory allocation problems after using variable variables) 2010-06-10 09:13:22 +00:00
Christopher Jones 442fa8dc1b Explicitly use db-5.0 and don't default to db sym link 2010-06-09 17:33:44 +00:00
Ilia Alshanetsky f7d82d0e0d Fixed bug #52010 (open_basedir restrictions mismatch on vacuum command). 2010-06-09 16:04:54 +00:00
Ilia Alshanetsky 0d4720a61b Fixed bug #51273 (Faultstring property does not exist when the faultstring is empty)
# Patch by dennis at transip dot nl
2010-06-09 15:48:22 +00:00
Pierre Joye 9e5313fdca - [DOC] MFH: add session.entropy* support to windows 2010-06-08 22:30:16 +00:00
Pierre Joye 32447e4902 - restore previous setting 2010-06-08 22:27:14 +00:00
Sriram Natarajan dbddbb6e34 - Fixed Bug #51168 (fails to compile with Sun Studio)
# C99 standard supports inline keyword and supported by
 # by major compilers like GCC, HP C, IBM C and Sun C
2010-06-08 21:23:48 +00:00
Felipe Pena 178ee9325d - Fix order 2010-06-08 19:47:04 +00:00
Antony Dovgal 3c9e1e6d70 support both 'warn' and 'warning' as error levels 2010-06-08 18:59:11 +00:00
Pierre Joye 73a413bdea - use new function to get random bytes 2010-06-08 18:27:23 +00:00
Pierre Joye 481f77890d - WS 2010-06-08 18:26:03 +00:00
Ulf Wendel 20f6aaeca9 Make the tests pass with sql strict mode enabled 2010-06-08 15:47:51 +00:00
Ulf Wendel aeae0d1bad Portability improvement 2010-06-08 14:57:10 +00:00
Ulf Wendel 3e5ac35bd9 Portability improvements 2010-06-08 14:29:05 +00:00
Pierre Joye 761dbeedbb - duplicate entry 2010-06-08 13:48:02 +00:00
Pierre Joye f8b17007e0 - [DOC] add session.entropy* support to windows 2010-06-08 13:46:19 +00:00
Antony Dovgal 9badd4f0fb fix bug #50101 (name clash between global and local variable) 2010-06-08 13:27:30 +00:00
Ulf Wendel 6b1d256af5 More SQL strict mode updates 2010-06-08 13:05:49 +00:00
Pierre Joye 68cd943189 - add striped down version of RNG layer to have a reliable random src on windows 2010-06-08 13:00:54 +00:00
Pierre Joye 5afc8e2c83 - add striped down version of RNG layer to have a reliable random src on windows 2010-06-08 13:00:11 +00:00
Antony Dovgal ae01c146d1 fix bug #51276 (php_load_extension() is missing when HAVE_LIBDL is undefined) 2010-06-08 12:54:11 +00:00
Antony Dovgal a8be1c1d4b fix micro-memleaks (happened once per process) 2010-06-08 12:02:55 +00:00
Ulf Wendel 0fb528edee Making tests pass strict sql mode. 2010-06-08 10:55:12 +00:00
Felipe Pena b65a473efb - Let's generate this #ifdef only on zend_vm_execute.h 2010-06-07 23:04:30 +00:00
Felipe Pena d78fb2b14a - Fix script 2010-06-07 14:37:35 +00:00
Pierre Joye 6d1d27bc3a - show the free_op1 warning only once, until a fix is applied 2010-06-07 01:37:59 +00:00
Pierre Joye 707980c2be - show the free_op1 warning only once, until a fix is applied 2010-06-06 20:32:51 +00:00
Pierre Joye badf05a8ea - silent warning (unary minus operator applied to unsigned type) 2010-06-06 15:28:30 +00:00
Pierre Joye b690b940ca - label only used when mmap is available 2010-06-06 12:32:25 +00:00
Christopher Jones 5441c86936 New test for file_exists (bug #39863). It currently xfail's 2010-06-05 19:44:48 +00:00
Felipe Pena a14dd7502b - Fixed bug #51991 (spl_autoload and *nix support with namespace) 2010-06-04 00:10:15 +00:00
Felipe Pena c42d8b3776 - Fix proto and argname 2010-06-03 18:39:21 +00:00
Felipe Pena 7deae5022d - Added ZipArchive arginfo 2010-06-03 18:23:14 +00:00
Christopher Jones 9ef6a73dee Add Berkeley DB 5 support. (An outstanding issue with BDB 4.8 related to 51086 that also affects BDB 5 is not yet resolved) 2010-06-03 07:03:05 +00:00
Felipe Pena 8454cca44c - Fix memleak when passing a non string/object parameter 2010-06-03 00:43:37 +00:00
Rasmus Lerdorf a259f797bf vim fail 2010-06-02 19:26:10 +00:00
Rasmus Lerdorf 6ba6263817 Tweak the fix for bug #51847 to still call libintl_setlocale
when libintl has done that redefine.
2010-06-02 19:24:36 +00:00
Pierre Joye 24ef65019f - silent warning 2010-06-02 19:20:04 +00:00
Pierre Joye c453a8fcda - fix leak on error in mcrypt_create_iv on windows 2010-06-02 15:27:38 +00:00
Pierre Joye 7c1d43dd95 - allow shared build 2010-06-02 10:00:58 +00:00
Rasmus Lerdorf d4cca6da93 Fix for bug #51847
Someone in libintl world decided it was a good idea to do:

#undef setlocale
#define setlocale libintl_setlocale

That means, of course, that any use of "setlocale" by the
preprocessor now becomes libintl_setlocale which means we
no longer have a _zif_setlocale symbol in string.o, but we
magically have a _zif_libintl_setlocale symbol.  The linker
is obviously not very happy about this when basic_functions.o
tries to find _zif_setlocale.

So, let's not do that again.
2010-06-02 05:53:13 +00:00
Johannes Schlüter d7b1fa9d35 Berkeley DB 5's SQL frontend gives a slightly different error than libsqlite 2010-06-01 16:39:36 +00:00
Andrey Hristov 4a0b4494d4 defensive programming, check before using a resource 2010-06-01 14:16:27 +00:00
Andrey Hristov 41406516b6 Perform later initialization 2010-06-01 09:47:46 +00:00
Andrey Hristov 2a043ed2d3 More check for valid MYSQLND_STMT before using it 2010-05-31 18:26:19 +00:00
Andrey Hristov 38f6c131e5 Don't reference row_packet before checking if dereferencing is possible 2010-05-31 18:18:37 +00:00
Andrey Hristov b472636375 Check if data is correct and initialize in a safe manner 2010-05-31 18:10:25 +00:00
Andrey Hristov 047d6f2855 Handle problems in the row_decoder, return type used to be void,
now it can return on problems.
2010-05-31 17:57:03 +00:00
Andrey Hristov b61d7501c9 Bail if allocation fails 2010-05-31 17:09:13 +00:00
Andrey Hristov 4cd5db922b Fix test 2010-05-31 16:53:33 +00:00
Andrey Hristov cf140b3bf7 try to workaround problems with non-c99 on HPUX 2010-05-31 16:51:03 +00:00
Ulf Wendel c0a8ce2f61 Updating test to reflect the latest and more verbose mysqlnd error messages, updating mysqlnd error message as well. 2010-05-31 13:56:42 +00:00
Ulf Wendel 0ab82cecc2 Fixing test - see also gcov results 2010-05-31 13:28:15 +00:00
Ulf Wendel 9b334da667 Fixing test - make sure it checks the same conditions for libmysql and mysqlnd 2010-05-31 12:55:59 +00:00
Ulf Wendel fb80ebe102 Fixing test 2010-05-31 12:22:48 +00:00
Ulf Wendel 4b5666a539 Fixing mysqli_stmt_attr_set @ libmysql 2010-05-31 12:10:04 +00:00
Ulf Wendel 2613069cd4 Improve EXPECTF to work with other than default schemata 2010-05-31 10:52:14 +00:00
Pierre Joye 46c0f21386 - Added recent Windows versions to php_uname and fix undefined windows version 2010-05-30 07:46:45 +00:00
Pierre Joye e2d9e0ae70 - ws 2010-05-30 07:36:19 +00:00
Jérôme Loyet dbe35d87d6 fix commit 299383 2010-05-29 22:00:43 +00:00
Jérôme Loyet e750930899 typo (thx to Brian P. Mercer) 2010-05-29 10:39:35 +00:00
Dmitry Stogov 54caf22325 Fixed bug #50976 (Soap headers Authorization not allowed) 2010-05-28 12:18:03 +00:00
Dmitry Stogov 42d25dc2b2 Fixed bug #50762 (in WSDL mode Soap Header handler function only being called if defined in WSDL). (mephius at gmail dot com) 2010-05-28 10:52:16 +00:00
Johannes Schlüter 901fc6f3a4 These files talk about PHP 3, flex, CVS, ... interesting to archeologists only 2010-05-27 23:12:44 +00:00
Johannes Schlüter 9cfcc89a0b Update EXTENSIONS file 2010-05-27 23:08:39 +00:00
Johannes Schlüter 435405f5da Update credits 2010-05-27 22:51:28 +00:00
Johannes Schlüter bb3faf2d25 Make the credits script more verbose 2010-05-27 22:50:31 +00:00
Johannes Schlüter a622dd6bfb From user's perspective this was added 2010-05-27 22:41:36 +00:00
Jérôme Loyet 66ef4d185c bug: include paths were not evaluated to to full path 2010-05-27 22:31:28 +00:00
Jérôme Loyet ce03ced4d7 typo 2010-05-27 22:18:58 +00:00
Ulf Wendel ba6ee3fc06 Open server bug: mysqlnd works around it, libmysql fails. Let's skip because MySQL Server version tests are tricky and error prone. 2010-05-27 13:01:17 +00:00
Andrey Hristov 3aa95c59cc Check before use, because mysqlnd can return NULL
and this will crash. However, this can happen only in case of OOM.
2010-05-27 12:44:10 +00:00
Andrey Hristov 6ebe80be5d Don't use NULL pointer, always check before use 2010-05-27 12:39:12 +00:00
Ulf Wendel 6356bcbbb9 Test fixes and updates to work with a wider range of MySQL server configs 2010-05-27 12:09:39 +00:00
Andrey Hristov ce2fbe1931 Fix possible crashes, in case of OOM, due to half-baken
objects.
2010-05-27 12:05:02 +00:00
Andrey Hristov 5efee3d587 Fix crashes in the allocator in case of OOM. 2010-05-27 12:00:48 +00:00
Andrey Hristov b7385f02fd Fix deallocation which can crash if the object is half-baken.
Happens during OOM.
2010-05-27 08:51:46 +00:00
Antony Dovgal 4d005a8e65 merge FPM SAPI from trunk (as agreed with Johannes) 2010-05-26 15:14:43 +00:00
Andrey Hristov ce136a825c Don't use conn->net without checking if it is NULL, because
it can be NULL in OOM conditions. This would cause a crash.
2010-05-26 13:47:43 +00:00
Andrey Hristov 0d468290be Fix test 2010-05-26 13:36:49 +00:00
Andrey Hristov d6458c3b1e Add checks to check the underlying pointer in the resource.
It can happen that the underlying pointer is freed (like in
the case of connection reconnect), and then it cannot be allocated
anymore, which means that NULL will be used consequently by the
functions that fetch the resource and the crash is immediate.
2010-05-26 07:28:43 +00:00
Felipe Pena 00191c3c34 - Fixed bug #51899 (Parse error in parse_ini_file() function when empy value followed by no newline) 2010-05-26 02:18:17 +00:00
Felipe Pena c4be9c3890 - Fixed bug #51905 (ReflectionParameter fails if default value is an array with an access to self::) 2010-05-26 00:00:58 +00:00
Andrey Hristov 58f13c3c9f Handle the situation when MYSQLND_PROTOCOL's methods return NULL.
mysqlnd should not crash but gracefully return with an error.
2010-05-25 23:18:13 +00:00
Andrey Hristov bccf2cea5d Handle the situation when mysql_init()/mysqlnd_init()
return NULL. It is a rare case of OOM but PHP shouldn't crash, if possible.
2010-05-25 22:55:10 +00:00
Felipe Pena f3009cb596 - Fixed bug #51911 (ReflectionParameter::getDefaultValue() memory leaks with constant array) 2010-05-25 22:46:17 +00:00
Andrey Hristov c5ff0eb5b8 Gracefully handle OOM in mysqlnd_stmt_init. Release the handle
and return NULL.
2010-05-25 22:42:25 +00:00
Andrey Hristov bcdc3b30f7 Init should return status value because initialization can fail.
In this case mysqlnd_init() should return NULL to the end-user.
2010-05-25 22:40:47 +00:00
Andrey Hristov 621cdd9019 Use the specialized macro for this case 2010-05-25 22:38:11 +00:00
Andrey Hristov c389adb96a Use only memory that has been allocated 2010-05-25 22:36:33 +00:00
Andrey Hristov 4abc7a1e69 Access memory which was really allocated 2010-05-25 22:34:47 +00:00
Andrey Hristov 348880ce66 Fix shared build 2010-05-25 21:54:21 +00:00
Andrey Hristov 337513ffa0 Handle OOM in the code that generates PS Execute requests
to the server. Fixes crashes in case of OOM.
2010-05-25 19:19:29 +00:00
Andrey Hristov ed4ce335d8 Fix metadata duplicatin which wasn't crash-safe in case of OOM. 2010-05-25 18:14:37 +00:00
Rasmus Lerdorf 5583cd237f Check for -1 as well here 2010-05-24 23:52:11 +00:00
Rasmus Lerdorf 159369c68c Let's have a sane error message here instead of some cryptic zlib error 2010-05-24 23:27:39 +00:00
Andrey Hristov 29c99daa0f Check set->data for validity before using it.
Prevents crashes after OOM.
2010-05-21 13:37:18 +00:00
Andrey Hristov ef1eeff882 When OOM hits the wire, don't crash. 2010-05-21 13:06:52 +00:00
Andrey Hristov 9c90bf42c1 Fix for Bug #51870
PDO::fetchAll after a PDO::execute with bindings lead to a segv.

It is only in unreleased code and thus doesn't deserve a NEWS entry
2010-05-21 11:09:28 +00:00
Ilia Alshanetsky ea3a6539dc Added support for JSON_NUMERIC_CHECK option in json_encode() that converts
numeric strings to integers.
2010-05-20 19:37:52 +00:00
Christopher Jones 3bdc7518a2 New current()/next() test 2010-05-20 17:55:58 +00:00
Felipe Pena b4500e9b85 - Added arginfo 2010-05-20 17:28:16 +00:00
Antony Dovgal 797bb31e24 fix ZTS build 2010-05-20 11:20:44 +00:00
Sara Golemon 2655e63e10 MFH: Add IV to openssl_(en|de)crypt()
Add openssl_cipher_iv_length()
2010-05-19 21:18:16 +00:00
Michael Wallner 60c236be92 * fixed bug #47842 sscanf() does not support 64-bit values 2010-05-19 11:28:08 +00:00
Pierre Joye 0d47dff287 - #51854, fix logic (patch by Tjerk) 2010-05-18 19:39:39 +00:00
Andrey Hristov c91c86b743 Remove duplicated code.
Use one centralized functions for data extraction.
2010-05-18 11:50:31 +00:00
Michael Wallner 8a402bf368 fix typo 2010-05-18 08:02:10 +00:00
Michael Wallner f4994234e2 add missing news about backlog socket context option for stream_socket_server() 2010-05-18 07:49:15 +00:00
Michael Wallner a1de9f382a * fixed bug #49819: STDOUT losing data with posix_isatty() 2010-05-18 07:25:29 +00:00
Pierre Joye 50a1b1d06c - #43233 2010-05-17 20:22:20 +00:00
Pierre Joye 57cfa703bf - #43233, sasl support for ldap on windows 2010-05-17 20:09:42 +00:00
Pierre Joye df59ed1c11 - 51844 2010-05-17 18:56:43 +00:00
Pierre Joye a22cd02f2f - #51844, checkdnsrr does not support types other than MX 2010-05-17 18:55:35 +00:00
Dmitry Stogov 059e2be153 Fixed a possible crash because of recursive GC invocation 2010-05-17 07:50:33 +00:00
Rasmus Lerdorf 9db78b574b typo 2010-05-15 15:37:18 +00:00
Felipe Pena c9fc939be0 - Fixed bug #51827 (Bad warning when register_shutdown_function called with wrong num of parameters) 2010-05-14 23:48:03 +00:00
Andrey Hristov e3be1e0bea result_meta local storage 2010-05-14 16:42:17 +00:00
Andrey Hristov c881ee30ea Allow overloading of mysqlnd_result_meta_init().
Add free space for future hooks.
2010-05-14 15:11:56 +00:00
Andrey Hristov 34ffc8a6c4 Export MYSQLND_PROTOCOL methods 2010-05-14 13:32:27 +00:00
Andrey Hristov b86ebe46cb - Give possibility to overload mysqlnd_result_init().
- Always use conn->m->stmt_init instead of mysqlnd_stmt_init()
2010-05-14 13:18:39 +00:00
Andrey Hristov ce0ea97850 OOM fixes 2010-05-14 13:04:33 +00:00
Andrey Hristov a78fa3fcaf - initialize some variables
- initialize the methods in a shorter way, use the compiler.
 = on structures copies them. Allows also exportability of
 the methods.
2010-05-13 15:29:08 +00:00
Andrey Hristov 90f16527af Export the methods of MYSQLND_NET 2010-05-13 14:15:23 +00:00
Andrey Hristov aad53cbdec Export the result_metadata methods to external modules. 2010-05-13 11:16:11 +00:00
Andrey Hristov 87bac04bf1 Better fix for #51605 2010-05-13 11:05:09 +00:00
Dmitry Stogov 32a09f39be Fixed a possible resource destruction issues in shm_put_var() 2010-05-13 08:34:06 +00:00
Dmitry Stogov 24704df3a8 Fixed a possible memory corruption in ArrayObject::uasort() Reported by Stefan Esser 2010-05-13 08:09:54 +00:00
Felipe Pena a8cad398fc - Fixed bug #51791 (constant() aborts execution when fail to check undefined constant) 2010-05-13 02:13:30 +00:00
Christopher Jones c5a068e025 Errors using reserved words as methods 2010-05-12 21:34:32 +00:00
Dmitry Stogov 24a1dbabc8 Fixed a possible memory corruption in parse_str(). Reported by Stefan Esser 2010-05-12 11:32:25 +00:00
Dmitry Stogov f94a437d9d Fixed a possible information leak because of interruption of XOR operator 2010-05-12 11:10:06 +00:00
Dmitry Stogov 27ef344f2b Fixed a possible memory corruption in pack(). Reported by Stefan Esser 2010-05-12 11:04:57 +00:00
Michael Wallner ad15797925 Fixed bug #51725 (xmlrpc_get_type() returns true on invalid dates). (Mike) 2010-05-12 09:37:25 +00:00
Christopher Jones 87b4f2a79d Restructure into PHP/PECL/PEAR component areas (at the expense of duplication) 2010-05-11 18:25:44 +00:00
Dmitry Stogov c2b911a0ec Fixed bug #49893 (Crash while creating an instance of Zend_Mail_Storage_Pop3) 2010-05-11 16:09:43 +00:00
Andrey Hristov d3b7aaa3fc One more time fixing the tests, lets use $IS_MYSQLND which comes from connect.inc 2010-05-11 15:55:07 +00:00
Andrey Hristov d4828ccd23 here comes the news, too 2010-05-11 15:50:21 +00:00
Andrey Hristov ab232ebb09 Fix for mysqli_stmt_execute.phpt, should be ran only against
4.1+ servers. MySQL's SLEEP function is available since 5.0.12, thus
the tests that use this function should be ran only if the server
is at least 5.0.12.
2010-05-11 15:49:03 +00:00
Andrey Hristov fd6f3961f8 These tests should be run only if mysqli uses mysqlnd. Part of fix for
Bug #51712 Test mysql_mysqlnd_read_timeout_long must fail on MySQL4
2010-05-11 15:27:03 +00:00
Raphael Geissert 7d4dde57d9 Document CGI options in the manpage (bug #51718)
Patch by Daniel Egeberg
2010-05-11 15:07:31 +00:00
Ilia Alshanetsky c7a553a7fb Removed double allocation of buffer inside openssl_random_pseudo_bytes() and cleanup code 2010-05-11 14:31:00 +00:00
Dmitry Stogov 57f8649eac Fixed a possible memory corruption in substr_replace() 2010-05-11 11:59:13 +00:00
Dmitry Stogov 5b18acdcc9 Fixed a possible memory corruption because of unexpected call-time pass by refernce and following memory clobbering through callbacks. 2010-05-11 10:41:19 +00:00
Andrey Hristov 962aa93ec7 Fix for bug #51605 (Mysqli zombie links) 2010-05-11 10:03:16 +00:00
Felipe Pena d787d545d2 - Fixed bug #51740 (acinclude.m4 macro PHP_CHECK_SIZEOF is not properly quoted)
Patch by: dave dot mulford at gmail dot com
2010-05-05 21:55:44 +00:00
Rob Richards 1e96fbe4a8 fix bug #48601 (xpath() returns FALSE for legitimate query)
add test
2010-05-05 11:40:11 +00:00
Dmitry Stogov 6597e85562 Fixed bug #50698 (SoapClient should handle wsdls with some incompatiable endpoints). (Justin Dearing) 2010-05-05 07:43:45 +00:00
Rob Richards 617e8a4f8c fix bug #49490 (XPath namespace prefix conflict)
add test
2010-05-04 15:41:49 +00:00
Derick Rethans 7cf3911cb8 - Fixed bug #49081 (DateTime::diff() mistake if start in January and interval >
28 days). (Derick)
2010-05-04 15:11:41 +00:00
Andrey Hristov ebae62d7c4 OOM stability fixes 2010-05-04 14:02:42 +00:00
Andrey Hristov 04d24bde20 Add possibility to control the allocator in when PHP is compiled
with debug
2010-05-04 13:49:43 +00:00
Rob Richards 3860164101 fix bug #51721 (mark DOMNodeList and DOMNamedNodeMap as Traversable) 2010-05-04 12:55:26 +00:00
Adam Harvey e32090a163 Fix misordered news item. 2010-05-04 11:59:54 +00:00
Adam Harvey 73ddb79613 Fix for bug #48289 (iconv_mime_encode() quoted-printable scheme is broken).
Thanks to Hiroaki Kawai for the original patch.
2010-05-04 11:56:59 +00:00
Adam Harvey 9d67273740 Well, as long as we're dealing with typos... :) 2010-05-04 11:01:46 +00:00
Felipe Pena f8b1db2d0d - Fix typo 2010-05-04 10:59:26 +00:00
Pierre Joye af567e7d54 - fix build 2010-05-04 09:51:03 +00:00
Adam Harvey e0e0147003 Alter the getmxrr() test to use lists.php.net (which we presumably control)
instead of ez.no (which we presumably don't) for the single MX record test.
2010-05-04 09:41:47 +00:00
Pierre Joye fdf0395e49 - Fixed bug #51732, Fileinfo __construct or open does not work with NULL 2010-05-04 08:48:58 +00:00
Dmitry Stogov 3a15e98155 Fixed a possible memory corruption in addcslashes(). 2010-05-04 08:02:51 +00:00
Pierre Joye 11040eae16 - revert fix for #51723 in 5.2, vc6 does not support strtoi64, use builtin functioon in 5.3 (trunk is vc9+ only) 2010-05-03 19:51:59 +00:00
Andrey Hristov 6202b46f2a Handle OOM in mysqlnd_res::store_result_fetch_data 2010-05-03 19:32:07 +00:00
Pierre Joye 55320ca1b8 - fix build (declaration must be first) 2010-05-03 19:29:05 +00:00
Andrey Hristov cac3520882 Handle OOM in mysqlnd_fetch_row_buffered_c() 2010-05-03 19:09:45 +00:00
Andrey Hristov 4a8d751cff Handle OOM in mysqlnd_fetch_row_unbuffered_c() 2010-05-03 19:02:48 +00:00
Andrey Hristov d0cef550a3 Handle OOM stemming from mysqlnd_result_init in the same
function and up the stack.
2010-05-03 18:50:47 +00:00
Pierre Joye 43f4d46cb3 - #51273, Content-length header is limited to 32bit integer with apache2/windows 2010-05-03 17:47:58 +00:00
Andrey Hristov 6dff9e55be Handle gracefully OOM in mysqlnd_mempool_create and up the stack 2010-05-03 17:07:18 +00:00
Felipe Pena 44bcdeeb77 - Replaced 'zend_hash_find' to 'zend_hash_quick_find' on zend_hash_compare() function 2010-05-03 16:36:04 +00:00
Andrey Hristov f9fe805abe Handle OOM in block_alloc_get_chunk, and also in the caller
in mysqlnd_wireprotocol.c
2010-05-03 16:20:46 +00:00
Andrey Hristov 864f2da733 Remove unused parameter 2010-05-03 16:09:05 +00:00
Ilia Alshanetsky 813e3cf14d Fixed bug #51690 (Phar::setStub looks for case-sensitive __HALT_COMPILER()) 2010-05-03 14:41:40 +00:00
Pierre Joye cbe5199c42 - WS 2010-05-03 14:29:07 +00:00
Andrey Hristov 88bf630798 One more case to handle in case of OOM, in block_alloc_resize_chunk 2010-05-03 14:26:08 +00:00
Andrey Hristov de4a5156e6 Handle OOM when resizing blocks during data fetch 2010-05-03 14:16:04 +00:00
Andrey Hristov 8fd0407b3a Fix compiler warnings - unused functions 2010-05-03 13:51:30 +00:00
Andrey Hristov d0abd9510e Better handing of OOM in mysqlnd::set_client_option 2010-05-03 13:45:58 +00:00
Pierre Joye 0871df60a3 - update bison version (mike) 2010-05-03 09:05:30 +00:00
Felipe Pena 151fc3b7c0 - Revert accidental changes 2010-05-02 20:11:22 +00:00
Ilia Alshanetsky 90c336026e - Fixed a possible stack exaustion inside fnmatch(). Reporeted by Stefan Esser 2010-05-02 19:34:21 +00:00
Raphael Geissert eca9e10bc0 Fix bug in unaligned memory access fix 2010-05-02 05:01:51 +00:00
Raphael Geissert 803869d6ff Fix unaligned memory accesses in enchant (bug #51289) 2010-05-01 23:32:40 +00:00
Felipe Pena 2b0464c3a9 - Fixed bug #51719 (typo in function prototype) 2010-05-01 18:54:49 +00:00
Raphael Geissert b373d8e184 Fix another typo s/exlcusive/exclusive 2010-05-01 18:30:38 +00:00
Raphael Geissert 174d2528b1 Fix typos s/connnection/connection 2010-05-01 18:27:42 +00:00
Pierre Joye 91bcba0343 - Fix #51688, ini per dir crashes when invalid document root are given 2010-04-30 08:15:09 +00:00
Andrey Hristov a3168a398c Handle OOM cases, in case of persistent connections this is real
and the Zend MM won't help.
2010-04-29 15:49:51 +00:00
Andrey Hristov 2c38266536 Fix valgrind warning, usage of nirvana memory 2010-04-29 15:17:44 +00:00
Andrey Hristov b72437494b Add a test case for the recently fixed memleak 2010-04-29 13:19:57 +00:00
Andrey Hristov fa40847263 Fix possible crashes in case of OOM, as well as a leak. 2010-04-29 13:13:41 +00:00
Andrey Hristov 16e4bd5d58 Try blob columns instead of int, and insert a lot of data at once 2010-04-29 12:07:02 +00:00
Andrey Hristov 9b468d9577 Fix crash if OOM and USE_ZEND_ALLOC=0 2010-04-29 11:49:08 +00:00
Christopher Jones c033a81b50 Bug #51691 (Unnecessary realloc causes crashes in PHP trunk tests with interned strings). Updated tests check some other edge cases 2010-04-29 05:07:16 +00:00
Derick Rethans 9d24798b38 - Updated to version 2010.9 (2010i) 2010-04-28 23:03:36 +00:00
Pierre Joye f4735e72e4 - we don't need that anymore 2010-04-28 22:25:31 +00:00
Christopher Jones 9b3e080098 Mask schemaname in error messages 2010-04-28 17:26:59 +00:00
Andrey Hristov ad4b429633 Fixed few buffer overflows reported by Stefan Esser. 2010-04-28 15:35:52 +00:00
Pierre Joye 0688e6ef01 - - Fixed #51128, imagefill() doesn't work with large images 2010-04-28 14:35:42 +00:00
Pierre Joye 17f5a9d2a2 - fix possible Dechunking Filter Buffer Overflow 2010-04-28 14:10:01 +00:00
Andrey Hristov 1838fcc7b0 const-ify fields 2010-04-28 12:29:13 +00:00
Ilia Alshanetsky 5031bfc395 Fixed a possible arbitrary memory access inside sqlite extension. Reported by Mateusz Kocielski. 2010-04-28 12:10:10 +00:00
Pierre Joye 07446082c8 - Fix #51671, imagefill does not work correctly for small images 2010-04-28 08:23:44 +00:00
Pierre Joye eaab2fbc4b - WS 2010-04-28 08:04:52 +00:00
Ilia Alshanetsky 7174b6ec78 Fixed string format validation inside phar extension. Reported by Stefan Esser 2010-04-27 17:13:24 +00:00
Andrey Hristov 3d900d4cad Fixed very rare memory leak in mysqlnd, when binding thousands of columns 2010-04-27 12:32:34 +00:00
Andrey Hristov eba793fa1f Of course, 64*4 is 256, not 1024 2010-04-27 11:02:51 +00:00
Andrey Hristov be5920b3e9 Move the macro to mysqlnd_enum_n_def.h, because it can be reused
in other places. Also, premultiply the values by 4 and add some
reserve for future releases of the server.
2010-04-27 10:53:27 +00:00
Etienne Kneuss a5d361e3ea Fixed #48361 (SplFileInfo::getPathName() should return the parent 2010-04-27 08:56:01 +00:00
Andrey Hristov 8525f7bb02 Test case for the buffer overflow in mysqlnd_change_user 2010-04-27 08:45:23 +00:00
Andrey Hristov 5bb74e6562 Fixed buffer overflow in mysqlnd_change_user 2010-04-27 08:26:24 +00:00
Hannes Magnusson 3283b811eb - Unifiy that message
- Mention php.ini
2010-04-27 08:23:25 +00:00
Hannes Magnusson 257a192095 Fix test 2010-04-27 08:17:17 +00:00
Andrey Hristov c92c788c85 Fixed possible buffer overflow in mysqlnd_conn__list_fields. 2010-04-27 08:02:08 +00:00
Etienne Kneuss c200eeeb61 Fix #51374 (Wrongly initialized object properties) 2010-04-27 05:58:39 +00:00
Pierrick Charron 8f128b2b13 Fixed bug #51670 getColumnMeta causes segfault when re-executing query after calling nextRowset 2010-04-27 05:56:56 +00:00
Etienne Kneuss 9f16874a53 Fix #49723 (Skip seek when unnecessary) 2010-04-27 04:57:48 +00:00
Kalle Sommer Nielsen cb30330800 Merge safe_mode changes into extensions that are in sync in both branches 2010-04-26 23:55:03 +00:00
Ilia Alshanetsky 64f372fae2 Fixed handling of session variable serialization on certain prefix characters. Reported by Stefan Esser 2010-04-26 18:35:54 +00:00
Pierre Joye 0f88851e92 - Fix #51582, Don't assume UINT64_C it's ever available 2010-04-26 10:34:53 +00:00
Felipe Pena 72ede78ebb - BFN #51624 2010-04-25 23:25:15 +00:00
Hannes Magnusson 267b5cea14 mention which setting! 2010-04-25 18:55:06 +00:00
Etienne Kneuss eb88d58e6c Fix #51532 (Invalid prototype for SplFileInfo::fscanf) 2010-04-25 05:18:42 +00:00
Felipe Pena 1c0ed3433e - Fixed memory leak 2010-04-24 16:59:09 +00:00
Christopher Jones eb0a3ff1af Initialize vars to prevent valgrind warnings in some cases 2010-04-24 00:44:56 +00:00
Andrey Hristov af6dd192b3 Fix for bug #51647 Certificate file without private key (pk in another file) doesn't work 2010-04-23 13:54:40 +00:00
Felipe Pena a5142d18cb - Fixed compiler warnings 2010-04-23 13:32:03 +00:00
Felipe Pena e86710ce11 - Fixed bug #51435 (Missing ifdefs / logic bug in crypt code cause compile errors) 2010-04-22 20:54:35 +00:00
Andrey Hristov 4842f96e2d Change the way the allocator is called - through an abstraction
to give the possibility of pluggability. Thanks to the macros
already used the changes are not pervasive.
2010-04-22 16:28:50 +00:00
Andrey Hristov 5431f235db Fix problem spotted by Felipe. 2010-04-22 16:22:56 +00:00
Antony Dovgal c996aea40d revert most of the Andrey's patch that causes segfaults
(as agreed with Pierre)
2010-04-22 15:59:44 +00:00
Andrey Hristov f71444c756 adding what last commit was missing 2010-04-22 15:14:45 +00:00
Andrey Hristov 34e56fea0b Remove dead code and add possibility to fine tune the size of
a mempool (used for result sets).
2010-04-22 15:07:40 +00:00
Andrey Hristov 2556733787 Add the posibility to switch off the compilation of statistics
collection, for those who want to optimize the last percent of their
binaries.
2010-04-22 13:03:44 +00:00
Antony Dovgal a1f753c8e3 initialize variable. this code still segfaults in OpenSSL, no idea why 2010-04-22 11:56:08 +00:00
Pierre Joye edc961cc66 - Bug #51629, CURLOPT_FOLLOWLOCATION error message is misleading 2010-04-22 11:49:10 +00:00
Pierre Joye 0fecc8c6a0 - Bug #51629, CURLOPT_FOLLOWLOCATION error message is misleading 2010-04-22 08:58:07 +00:00
Adam Harvey 592daf8453 Fix for bug #51604 (newline in end of header is shown in start of message).
Patch by Daniel Egeberg.
2010-04-22 02:22:49 +00:00
Felipe Pena ab81ddd1de - Changed order to FR 2010-04-21 22:30:06 +00:00
Felipe Pena ee185c604a - Fixed bug #51627 (script path not correctly evaluated)
Patch by: russell dot tempero at rightnow dot com
2010-04-21 22:22:31 +00:00
Felipe Pena 5a7786c63f - Fixed bug #51562 (query timeout in mssql can not be changed per query)
Patch by: ejsmont dot artur at gmail dot com
2010-04-21 14:19:27 +00:00
Felipe Pena 45b68febe9 - Fix mem. leak 2010-04-21 12:52:24 +00:00
Andrey Hristov 691522780f Hardening the reads of mysqlnd.
All packets but the row data packet are read into preallocated buffer,
either on the stack or on the heap (cmd_buffer). The size of the buffer
is always checked to skip buffer overruns. Only up to the size of the
buffer is stored into the buffer but packet->header.size has the size of
all data sent. In this case network layer bails.

This patch hardenes the reads, so if packets are malformed and shorter
than they should be there will be no further reads in the buffer.
In short, detection of malformed packets.
2010-04-20 20:02:32 +00:00
Andrey Hristov efa0077e08 put the trigger in the right place 2010-04-20 19:09:56 +00:00
Andrey Hristov 804b950562 It is possible that change user tries an user who has old password.
Instead of error message that doesn't say much there is more information now.
2010-04-20 18:04:24 +00:00
Felipe Pena 0cbfc91628 - Improve test 2010-04-20 16:45:46 +00:00
Felipe Pena df43d76e62 - Fixed bug #51615 (PHP crash with wrong HTML in SimpleXML) 2010-04-20 16:24:21 +00:00
Felipe Pena 1efc049863 - Fixed bug #51607 (pg_copy_from does not allow schema in the tablename argument)
Patch by: cbandy at jbandy dot com
2010-04-20 15:59:01 +00:00
Dmitry Stogov 336e957951 Fixed bug #49700 (memory leaks in php_date.c if garbage collector is enabled) 2010-04-20 15:41:35 +00:00
Felipe Pena 5aedea7179 - Fixed bug #51609 (pg_copy_to: Invalid results when using fourth parameter) 2010-04-20 14:11:53 +00:00
Felipe Pena a175419f84 - Fix copyrights 2010-04-20 13:50:34 +00:00
Antony Dovgal 5d2f7ab843 fix build 2010-04-20 12:50:02 +00:00
Dmitry Stogov 4c252d805d Fixed bug #48781 (Cyclical garbage collector memory leak) 2010-04-20 12:30:35 +00:00
Felipe Pena 0b401e1289 - Fixed bug #51608 (pg_copy_to: WARNING: nonstandard use of \\ in a string literal)
Patch by: cbandy at jbandy dot com
2010-04-20 11:49:23 +00:00
Antony Dovgal 9c97c26832 fix infinite loop in the test 2010-04-20 10:04:26 +00:00
Adam Harvey b47136d332 Added explanatory comments to filter_input and filter_input_array to document
why some code that looks intuitively wrong is actually correct. Related to
bug #51344 (FILTER_NULL_ON_FAILURE flag automatically set in filter_input()
functions).
2010-04-20 04:31:11 +00:00
Stanislav Malyshev 8088be390f fix 64-bit integer overflow in mhash_keygen_s2k 2010-04-20 00:45:07 +00:00
Felipe Pena 45c090f3e7 - Fixed bug #51590 (JSON_ERROR_UTF8 is undefined) 2010-04-18 18:07:27 +00:00
Christopher Jones de174766f8 Add fix made previously 2010-04-16 22:34:25 +00:00
Christopher Jones 7a4b40efc5 Add attribution (thanks Felipe) 2010-04-16 22:06:52 +00:00
Christopher Jones a812818670 Fixed Bug #51577 (Uninitialized memory reference with oci_bind_array_by_name) 2010-04-16 20:36:40 +00:00
Christopher Jones e79a8d440e Merge Kalle's tidy-up from trunk to keep files in sync 2010-04-16 19:47:23 +00:00
Christopher Jones ff515d0ee4 Fix php.ini comment typo 2010-04-15 19:22:01 +00:00
Andrey Hristov 664b2389ca Last batch of int/uint comparison fixes 2010-04-15 15:58:26 +00:00
Andrey Hristov 76d64590b0 More int/uint comparison warning fixes 2010-04-15 15:53:58 +00:00
Andrey Hristov cdac2b4ecf Fix some int/uint comparison warnings 2010-04-15 15:28:00 +00:00
Andrey Hristov 6cc57e0d0d Remove unused file 2010-04-15 15:22:56 +00:00
Andrey Hristov 48e413eb28 more WS 2010-04-15 15:16:29 +00:00
Andrey Hristov 6aa682f564 CS + WS changes 2010-04-15 12:55:04 +00:00
Antony Dovgal 187a0d9b28 final fix for long opts in getopt() 2010-04-15 11:50:43 +00:00
Andrey Hristov dd9fc198ce Fix for bug#49234 method not found ssl_set
Patch was tested and compiles on Windows. (Thanks Kalle)
2010-04-15 11:01:30 +00:00
Antony Dovgal 2404c4c84f discard first TWO symbols of a long argument 2010-04-14 15:49:38 +00:00
Pierre Joye 632c03de71 - #35638, add udate to imap_fetch_overview 2010-04-14 09:45:37 +00:00
Antony Dovgal 913970cebf simplify configure check for nanosleep() 2010-04-13 12:41:46 +00:00
Pierre Joye 036c5f9f31 - begintransaction entry 2010-04-12 19:57:07 +00:00
Ilia Alshanetsky 213e155713 Fixed bug #51512 (mb_send_mail* fail when mail.add_x_header is on by default) 2010-04-12 14:04:45 +00:00
Pierre Joye b298ed5b70 - [doc] merge stream_set_read_buffer, equivalent of stream_set_write_buffer for read operations. Fixing possible bad effects while reading devices 2010-04-12 13:10:05 +00:00
Rob Richards f53f94d24d fix bug #50828 (DOMNotation is not subclass of DOMNode) 2010-04-09 11:34:34 +00:00
Antony Dovgal dda73e99f2 make sure the actual length of the argument passed matches the
length of the argument declared
this fixes things like `php --zend-exten=1` or `php-fpm --fpm-con=conf`
2010-04-08 15:27:21 +00:00
Andrey Hristov 3bd2faff8c Fixint INT_AND_FLOAT_AS native. It was working ok on 64bit but
because on 32bit SIZEOF_LONG is 4 and INT64 from MySQL is 8 everything
was converted to string, even if it was able to put it in a long.
This closes Request #50651 Native type cast returns wrong result
2010-04-08 13:20:37 +00:00
Andrey Hristov be73f948d2 Fixing the second test 2010-04-08 13:18:52 +00:00
Andrey Hristov 48c3d20dd4 one more fix and both work with libmysql and mysqlnd 2010-04-08 10:53:38 +00:00
Antony Dovgal d2699793e0 fix build 2010-04-08 09:56:18 +00:00
Andrey Hristov 8338d48828 Fix for bug #51026 ssl not working 2010-04-08 09:01:21 +00:00
Pierre Joye 517d9bb1f2 - WS 2010-04-08 07:55:35 +00:00
Pierre Joye c4eafddbda - WS 2010-04-08 07:50:05 +00:00
Andrey Hristov 48392f04fa Another fix for the 16 chars user limitation of MySQL 2010-04-07 18:28:46 +00:00
Andrey Hristov 7670d2948d Fix test. The usernames in the server are 16 chars long 2010-04-07 18:05:42 +00:00
Andrey Hristov 798103d4e0 Fix the Windows build (void* arithmetic) as well as --disable-zlib
build.
2010-04-06 18:14:23 +00:00
Andrey Hristov dda0320c5c Stricly C 2010-04-06 14:33:55 +00:00
Antony Dovgal d7e716b8f0 fix typo 2010-04-06 13:42:21 +00:00
Andrey Hristov aa8f43fad9 Recommit with an Windows build fix:
Fix inconsistencies
- memory allocated with spprintf, or likes, outside of mysqlnd's
allocator functions should not be freed by the mysqlnd's allocator
(a wrapper around emalloc/malloc).
- memory allocated by the mysqlnd's allocator should only be freed
  by it.
- add a mode to track memory usage (malloc/free)
2010-04-06 13:28:23 +00:00
Stanislav Malyshev 5f11cd5693 change namespaced ctors - only __construct would work 2010-04-04 23:28:20 +00:00
Felipe Pena 462580cd7d - Fix tests 2010-04-04 17:21:27 +00:00
Felipe Pena 49a81742ef - Fix test 2010-04-04 16:57:44 +00:00
Felipe Pena 4d571dee74 - Fixed tests 2010-04-03 15:42:42 +00:00
Felipe Pena a140e70661 - Fixed bug #51445 (var_dump() invalid/slow *RECURSION* detection) 2010-04-02 21:44:09 +00:00
Rob Richards 0758c8794d fix bug #48983 (DomDocument : saveHTMLFile wrong charset) 2010-04-02 20:08:15 +00:00
Rasmus Lerdorf 9744284109 Fix tests 2010-04-02 18:27:48 +00:00
Rasmus Lerdorf 6d77506cfd Update the FILTER_VALIDATE_EMAIL filter to fix bug #49576 2010-04-02 17:56:37 +00:00
Rob Richards f1af56fb4e fix WS 2010-04-02 16:19:23 +00:00
Rob Richards 12b71200be re-apply bug fix #35673 (formatOutput does not work with saveHTML) from old trunk
add test
BFN
2010-04-02 16:15:06 +00:00
Stanislav Malyshev 44a5b8e459 fix #49192 - crash in GC when get_properties handler returns null 2010-04-01 22:54:03 +00:00
Pierre Joye 96e2651fa2 - revert revision 297277, break the builds (declaration must go 1st, size of void * and other known situations). Also Johannes, can you check that commit pls? Thought we were in bugs fixing only for 5.3 2010-04-01 20:21:50 +00:00
Stanislav Malyshev a3857fd963 fix #51394 - try harder to find script lineno when exception happens 2010-04-01 19:36:56 +00:00
Rasmus Lerdorf 8b1d84a6ce Add new full_special_chars filter to tests 2010-04-01 18:04:57 +00:00
Andrey Hristov f534df710e Fix inconsistencies
- memory allocated with spprintf, or likes, outside of mysqlnd's
allocator functions should not be freed by the mysqlnd's allocator
(a wrapper around emalloc/malloc).
- memory allocated by the mysqlnd's allocator should only be freed
  by it.
- add a mode to track memory usage (malloc/free)
2010-04-01 13:26:41 +00:00
Andrey Hristov a712d9cefb Better fix for bug #51347 mysqli_close / connection memory leak 2010-04-01 12:46:21 +00:00
Ilia Alshanetsky c2e16d3c5b On beginTransaction() reset error state 2010-04-01 12:08:55 +00:00
Andrey Hristov 311ab2c822 Fixed bug #51347 mysqli_close / connection memory leak
Streams API registers every stream as resource, which lands then
in EG(regular_list), however doesn't clean that when the stream is
closed. At the end this is a para-leak. At the end of the script
all memory is cleaned, however this is a problem for long runnig
scripts that open connections. For every opened and closed connection
about 150 Bytes on 32bit and 250 Bytes on 64bit will be "lost",
according to memory_get_usage().
2010-04-01 11:50:24 +00:00
Pierre Joye 60176163f1 - fix build 2010-04-01 10:34:05 +00:00
Rasmus Lerdorf b529350d4a Fix FILTER_VALIDATE_URL - Host names can't start with '.' or '-' 2010-03-31 23:56:30 +00:00
Rasmus Lerdorf a5b5743d71 full_special_chars filter from trunk - approved by johannes 2010-03-31 22:59:09 +00:00
Johannes Schlüter 53d35553c6 It's 2010 already 2010-03-30 21:09:07 +00:00
Johannes Schlüter 4dc1cef4fe Use php_error_docref instead of zend_error 2010-03-30 21:02:32 +00:00
Ilia Alshanetsky 658fe1d0c3 Upgraded bundled sqlite to version 3.6.23.1 2010-03-30 11:52:25 +00:00
Derick Rethans 462399b78b - Updated to version 2010.7 (2010g) 2010-03-29 17:22:53 +00:00
Andrey Hristov 94cd357f5b Make it coupled - what is allocated with mnd_ should be freed
with mnd_ and vice versa.
Added mnd_pestrndup and mnd_pestrdup, which wrap the normal
calls to be able to track this calls.
Fixed some failing tests.
2010-03-29 17:04:16 +00:00
Ilia Alshanetsky e99039d692 Upgraded bundled PCRE to version 8.02. 2010-03-29 11:58:06 +00:00
Christopher Jones 3e58dee19a Fix #51220 by adding . Also improve reliability for tests using undefined behavior. 2010-03-26 19:38:26 +00:00
Andrey Hristov ec36ac1610 Fix tests that fail when the MySQL's socket file is not /tmp/mysql.sock
as it is in when compiled from source and the default for mysqlnd.
SuSE for example uses /var/run/mysql/mysql.sock . Also, sql.safe_mode
(ext/mysql and ingres) needs the socket.
Fix possible crashes in mysqlnd. When packets are shorter, functions should
return error.
2010-03-26 16:58:25 +00:00
Adam Harvey 53cfb3d53d Fixed bug #51393 (DateTime::createFromFormat() fails if format string contains timezone). 2010-03-26 04:31:26 +00:00
Stanislav Malyshev 252082192a fix the protos 2010-03-25 19:17:17 +00:00
Christopher Jones 1a6f4efbad Fixed bug #51291 (oci_error doesn't report last error when called two times) 2010-03-24 22:08:55 +00:00
Hannes Magnusson abd893a2ae Fix tests 2010-03-24 22:06:21 +00:00
Hannes Magnusson a1cce74e96 Fix test (the key can be negative) 2010-03-24 21:57:30 +00:00
Andrey Hristov 78887ff757 Fix a segfault when using a mysqli object after unsuccesssful connect, the
handle should have been allocated with mysqli_init().
2010-03-24 15:17:57 +00:00
Andrey Hristov 9f20131311 fix build failure after recent commit by Kalle 2010-03-24 10:06:42 +00:00
Takeshi Abe a46e108b83 Fixed bug #51263 (imagettftext and rotated text uses wrong baseline) 2010-03-24 04:12:19 +00:00
2609 changed files with 109743 additions and 158676 deletions

No files matched your search

+2 -2
View File
@@ -497,8 +497,8 @@ STATUS: Working
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: snmp
PRIMARY MAINTAINER: Boris Lytochkin <lytboris@php.net>, Rasmus Lerdorf <rasmus@php.net>, Pierre-Alain Joye <pajoye@php.net>
MAINTENANCE: Maintained
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>, Pierre-Alain Joye <pajoye@php.net>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sockets
+1320 -1321
View File
File diff suppressed because it is too large. Load diff
+1 -5
View File
@@ -13,8 +13,6 @@ all: $(all_targets)
build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
build-binaries: $(PHP_BINARIES)
libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
-@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1
@@ -37,8 +35,6 @@ install-sapi: $(OVERALL_TARGET)
fi
@$(INSTALL_IT)
install-binaries: build-binaries $(install_binary_targets)
install-modules: build-modules
@test -d modules && \
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
@@ -83,7 +79,7 @@ PHP_TEST_SHARED_EXTENSIONS = ` \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \
done; \
fi`
PHP_DEPRECATED_DIRECTIVES_REGEX = '^(magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*='
PHP_DEPRECATED_DIRECTIVES_REGEX = '^(define_syslog_variables|register_(globals|long_arrays)?|safe_mode|magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*='
test: all
-@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
+19 -845
View File
@@ -1,829 +1,5 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 Aug 2011, PHP 5.4.0 Alpha 3
- Added features:
. Short array syntax, see UPGRADING guide for full details (rsky0711 at gmail
. com, sebastian.deutsch at 9elements . com, Pierre)
. Binary numbers format (0b001010). (Jonah dot Harris at gmail dot com)
. Support for Class::{expr}() syntax (Pierrick)
- Removed features:
. Removed magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase ini options.
get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return
false, set_magic_quotes_runtime raises an E_CORE_ERROR. (Pierrick, Pierre)
- Changed E_ALL to include E_STRICT. (Stas)
- Improved core functions
. Fixed bug #55124 (recursive mkdir fails with current (dot) directory in path).
(Pierre)
- Improved PHP-FPM SAPI:
. Added process.max to control the number of process FPM can fork. FR #55166.
(fat)
. Dropped restriction of not setting the same value multiple times, the last
one holds. (giovanni at giacobbi dot net, fat)
- SPL extension:
. Added missing class_uses(..) as pointed out by #55266 (Stefan)
. Fixed bug #55287 (spl_classes() not includes CallbackFilter classes)
(sasezaki at gmail dot com, salathe)
14 Jul 2011, PHP 5.4.0 Alpha 2
- General improvements:
. Zend Signal Handling. (Lucas Nealan,Arnaud Le Blanc,Brian Shire, Ilia)
- Improved Zend Engine
. Improved parse error messages. (Felipe)
- Improved CLI SAPI:
. Added built-in web server that is intended for testing purpose.
(Moriyoshi)
- Improved PHP-FPM SAPI:
. Added partial syslog support (on error_log only). FR #52052. (fat)
. Lowered default value for Process Manager. FR #54098. (fat)
. Enhance security by limiting access to user defined extensions.
FR #55181. (fat)
- Improved core functions:
. Changed http_response_code() to be able to set a response code. (Kalle)
. Fixed crypt_blowfish handling of 8-bit characters. (Stas) (CVE-2011-2483)
. Fixed bug#55084 (Function registered by header_register_callback is
called only once per process). (Hannes)
- Improved DOM extension:
. Added the ability to pass options to loadHTML (Chregu, fxmulder at gmail dot com)
- OpenSSL extension:
. Use php's implementation for Windows Crypto API in
openssl_random_pseudo_bytes. (Pierre)
20 Jun 2011, PHP 5.4.0 Alpha 1
- autoconf 2.59+ is now supported (and required) for generating the
configure script with ./buildconf. Autoconf 2.60+ is desirable
otherwise the configure help order may be incorrect. (Rasmus, Chris Jones)
- Removed legacy features:
. break/continue $var syntax. (Dmitry)
. Safe mode and all related ini options. (Kalle)
. register_globals and register_long_arrays ini options. (Kalle)
. import_request_variables(). (Kalle)
. allow_call_time_pass_reference. (Pierrick)
. define_syslog_variables ini option and its associated function. (Kalle)
. highlight.bg ini option. (Kalle)
. Session bug compatibility mode (session.bug_compat42 and
session.bug_compat_warn ini options). (Kalle)
. session_is_registered(), session_register() and session_unregister()
functions. (Kalle)
. y2k_compliance ini option. (Kalle)
- Moved extensions to PECL: (Johannes)
. ext/sqlite. (Note: the ext/sqlite3 and ext/pdo_sqlite extensions are
not affected)
- Changed $_SERVER['REQUEST_TIME'] to include microsecond precision. (Ilia)
- Changed default value of "default_charset" php.ini option from ISO-8859-1 to
UTF-8. (Rasmus)
- Changed array_combine() to return empty array instead of FALSE when both
parameter arrays are empty. FR #34857. (joel.perras@gmail.com)
- Changed third parameter of preg_match_all() to optional. FR #53238. (Adam)
- Changed silent casting of null/''/false into an Object when adding
a property into a warning. (Scott)
- <?= is now always available regardless of the short_tags setting (Rasmus)
- General improvements:
. Added multibyte support by default. Previously php had to be compiled
with --enable-zend-multibyte. Now it can be enabled or disabled through
zend.multibyte directive in php.ini. (Dmitry)
. Removed compile time dependency from ext/mbstring (Dmitry)
. Added support for Traits. (Stefan)
. Added closure $this support back. (Stas)
. Added array dereferencing support. (Felipe)
. Added indirect method call through array. FR #47160. (Felipe)
. Added support for object references in recursive serialize() calls.
FR #36424. (Mike)
. Added http_response_code() function. FR #52555. (Paul Dragoonis, Kalle)
. Added header_register_callback() which is invoked immediately
prior to the sending of headers and after default headers have
been added. (Scott)
. Added DTrace support. (David Soria Parra)
. Improved output layer, see README.NEW-OUTPUT-API for internals. (Mike)
. Improved unserialize() performance.
(galaxy dot mipt at gmail dot com, Kalle)
. Improved unix build system to allow building multiple PHP binary SAPIs and
one SAPI module the same time. FR #53271, FR #52410. (Jani)
. Added optional argument to debug_backtrace() and debug_print_backtrace()
to limit the amount of stack frames returned. (Sebastian, Patrick)
. Added stream metadata API support and stream_metadata() stream class
handler. (Stas)
- Improved Zend Engine memory usage: (Dmitry)
. Replaced zend_function.pass_rest_by_reference by
ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags.
. Replaced zend_function.return_reference by ZEND_ACC_RETURN_REFERENCE
in zend_function.fn_flags.
. Removed zend_arg_info.required_num_args as it was only needed for internal
functions. Now the first arg_info for internal functions (which has special
meaning) is represented by zend_internal_function_info structure.
. Moved zend_op_array.size, size_var, size_literal, current_brk_cont,
backpatch_count into CG(context) as they are used only during compilation.
. Moved zend_op_array.start_op into EG(start_op) as it's used only for
'interactive' execution of single top-level op-array.
. Replaced zend_op_array.done_pass_two by ZEND_ACC_DONE_PASS_TWO in
zend_op_array.fn_flags.
. op_array.vars array is trimmed (reallocated) during pass_two.
. Replaced zend_class_entry.constants_updated by ZEND_ACC_CONSTANTS_UPDATED
in zend_class_entry.ce_flags.
. Reduced the size of zend_class_entry by sharing the same memory space
by different information for internal and user classes.
See zend_class_entry.info union.
. Reduced size of temp_variable.
- Changed the structure of op_array.opcodes. The constant values are moved from
opcode operands into a separate literal table. (Dmitry)
- Improved Zend Engine, performance tweaks and optimizations: (Dmitry)
. Inlined most probable code-paths for arithmetic operations directly into
executor.
. Eliminated unnecessary iterations during request startup/shutdown.
. Changed $GLOBALS into a JIT autoglobal, so it's initialized only if used.
(this may affect opcode caches!)
. Improved performance of @ (silence) operator.
. Simplified string offset reading. $str[1][0] is now a legal construct.
. Added caches to eliminate repeatable run-time bindings of functions,
classes, constants, methods and properties.
. Added concept of interned strings. All strings constants known at compile
time are allocated in a single copy and never changed.
. Added an optimization which saves memory and emalloc/efree calls for empty
HashTables. (Stas, Dmitry)
. ZEND_RECV now always has IS_CV as its result.
. ZEND_CATCH now has to be used only with constant class names.
. ZEND_FETCH_DIM_? may fetch array and dimension operands in different order.
. Simplified ZEND_FETCH_*_R operations. They can't be used with the
EXT_TYPE_UNUSED flag any more. This is a very rare and useless case.
ZEND_FREE might be required after them instead.
. Split ZEND_RETURN into two new instructions ZEND_RETURN and
ZEND_RETURN_BY_REF.
. Optimized access to global constants using values with pre-calculated
hash_values from the literals table.
. Optimized access to static properties using executor specialization.
A constant class name may be used as a direct operand of ZEND_FETCH_*
instruction without previous ZEND_FETCH_CLASS.
. zend_stack and zend_ptr_stack allocation is delayed until actual usage.
- Improved CLI SAPI: (Johannes, Moriyoshi)
. Added command line option --rz <name> which shows information of the
named Zend extension. (Johannes)
. Interactive readline shell improvements: (Johannes)
. Added "cli.pager" php.ini setting to set a pager for output.
. Added "cli.prompt" php.ini setting to configure the shell prompt.
. Added shortcut #inisetting=value to change ini settings at run-time.
. Changed shell not to terminate on fatal errors.
. Interactive shell works with shared readline extension. FR #53878.
- Improved FastCGI SAPI: (Dmitry)
. Added apache compatible functions: apache_child_terminate(),
getallheaders(), apache_request_headers() and apache_response_headers()
. Improved performance of FastCGI request parsing.
- Improved core functions:
. number_format() no longer truncates multibyte decimal points and thousand
separators to the first byte. FR #53457. (Adam)
. Added hex2bin() function. (Scott)
- Improved CURL extension:
. Added support for CURLOPT_MAX_RECV_SPEED_LARGE and
CURLOPT_MAX_SEND_SPEED_LARGE. FR #51815. (Pierrick)
- Improved Date extension:
. Added the + modifier to parseFromFormat to allow trailing text in the
string to parse without throwing an error. (Stas, Derick)
- Improved DBA extension:
. Added Tokyo Cabinet abstract DB support. (Michael Maclean)
. Added Berkeley DB 5 support. (Johannes, Chris Jones)
- Improved filesystem functions:
. scandir() now accepts SCANDIR_SORT_NONE as a possible sorting_order value.
FR #53407. (Adam)
- Improved HASH extension:
. Added Jenkins's one-at-a-time hash support. (Martin Jansen)
. Added FNV-1 hash support. (Michael Maclean)
. Made Adler32 algorithm faster. FR #53213. (zavasek at yandex dot ru)
- Improved intl extension:
. Added Spoofchecker, allows checking for visibly confusable characters and
other security issues. (Scott)
- Improved JSON extension:
. Added JsonSerializable interface. (Sara)
. Added JSON_BIGINT_AS_STRING, extended json_decode() sig with $options.
(Sara)
. Added support for JSON_NUMERIC_CHECK option in json_encode() that converts
numeric strings to integers. (Ilia)
. Added new json_encode() option JSON_PRETTY_PRINT. FR #44331. (Adam)
. Added new json_encode() option JSON_UNESCAPED_SLASHES. FR #49366. (Adam)
- Improved LDAP extension:
. Added paged results support. FR #42060. (ando@OpenLDAP.org,
iarenuno@eteo.mondragon.edu, jeanseb@au-fil-du.net, remy.saissy@gmail.com)
- Improved MySQL extensions:
. MySQL: Deprecated mysql_list_dbs(). FR #50667. (Andrey)
. mysqlnd: Added named pipes support. FR #48082. (Andrey)
. MySQLi: Added iterator support in MySQLi. mysqli_result implements
Traversable. (Andrey, Johannes)
. PDO_mysql: Removed support for linking with MySQL client libraries older
than 4.1. (Johannes)
- Improved OpenSSL extension:
. Added AES support. FR #48632. (yonas dot y at gmail dot com, Pierre)
. Added a "no_ticket" SSL context option to disable the SessionTicket TLS
extension. FR #53447. (Adam)
. Added no padding option to openssl_encrypt()/openssl_decrypt(). (Scott)
- Improved PDO DB-LIB: (Stanley)
. Added nextRowset support.
. Fixed bug #50755 (PDO DBLIB Fails with OOM).
- Improved PostgreSQL extension:
. Added support for "extra" parameter for PGNotify().
(r dot i dot k at free dot fr, Ilia)
- Improved Reflection extension: (Johannes)
. Added ReflectionExtension::isTemporary() and
ReflectionExtension::isPersistent() methods.
. Added ReflectionZendExtension class.
. Added ReflectionClass::isCloneable(). (Felipe)
- Improved Session extension:
. Added support for storing upload progress feedback in session data. (Arnaud)
. Changed session.entropy_file to default to /dev/urandom or /dev/arandom if
either is present at compile time. (Rasmus)
- Improved SPL extension:
. Added RegexIterator::getRegex() method. (Joshua Thijssen)
. Added SplObjectStorage::getHash() hook. (Etienne)
. Added CallbackFilterIterator and RecursiveCallbackFilterIterator. (Arnaud)
- Improved XSL extension:
. Added XsltProcessor::setSecurityPrefs($options) and getSecurityPrefs() to
define forbidden operations within XSLT stylesheets, default is not to
enable write operations from XSLT. Bug #54446 (Chregu, Nicolas Gregoire)
- Improved ZLIB extension:
. Re-implemented non-file related functionality. (Mike)
- Improved SNMP extension (Boris Lytochkin):
. Added OO API. FR #53594 (php-snmp rewrite).
. Sanitized return values of existing functions. Now it returns FALSE on
failure.
. Allow ~infinite OIDs in GET/GETNEXT/SET queries. Autochunk them to max_oids
upon request.
. Introducing unit tests for extension with ~full coverage.
. Way of representing OID value can now be changed when SNMP_VALUE_OBJECT
is used for value output mode. Use or'ed SNMP_VALUE_LIBRARY(default if
not specified) or SNMP_VALUE_PLAIN. (FR #54502)
. Fixed bugs
. #44193 (snmp v3 noAuthNoPriv doesn't work)
. #45893 (Snmp buffer limited to 2048 char)
. #46065 (snmp_set_quick_print() persists between requests)
. #51336 (snmprealwalk (snmp v1) does not handle end of OID tree correctly)
. #53862 (snmp_set_oid_output_format does not allow returning to default)
## UNSORTED ##
- Fixed PDO objects binary incompatibility. (Dmitry)
- Fixed bug #52211 (iconv() returns part of string on error). (Felipe)
28 Jul 2011, PHP 5.3.7 RC4
- Improved core functions:
. Updated crypt_blowfish to 1.2. ((CVE-2011-2483) (Solar Designer)
- OpenSSL
. openssl_encrypt()/openssl_decrypt() truncated keys of variable length
ciphers to the OpenSSL default for the algorithm. (Scott)
. On blocking SSL sockets respect the timeout option where possible.
(Scott)
- Core
. Fixed bug #55339 (Segfault with allow_call_time_pass_reference = Off).
(Dmitry)
. Fix bug #55295 [NEW]: popen_ex on windows, fixed possible heap overflow
(Pierre)
. Fixed bug #50816 (Using class constants in array definition fails).
(Pierrick, Dmitry)
14 Jul 2011, PHP 5.3.7 RC3
- Zend Engine:
. Fixed bug #55156 (ReflectionClass::getDocComment() returns comment even
though the class has none). (Felipe)
- Core
. Removed warning when argument of is_a() or is_subclass_of() is not
a known class. (Stas)
. Fixed bug #55258 (Windows Version Detecting Error).
( xiaomao5 at live dot com, Pierre)
. Fixed bug #55187 (readlink returns weird characters when false result).
(Pierre)
. Fixed bug #55014 (Compile failure due to improper use of ctime_r()). (Ilia)
. Fixed bug #54332 (Crash in zend_mm_check_ptr // Heap corruption). (Dmitry)
. Fixed bug #54204 (Can't set a value with a PATH section in php.ini).
(Pierre)
. Fixed bug #54305 (Crash in gc_remove_zval_from_buffer). (Dmitry)
. Fixed bug #53727 (Inconsistent behavior of is_subclass_of with interfaces)
(Ralph Schindler, Dmitry)
. Fixed buffer overflow on overlog salt in crypt(). (Clément LECIGNE, Stas)
. Fixed bug #52935 (call exit in user_error_handler cause stream relate
core). (Gustavo)
- MCrypt
. Change E_ERROR to E_WARNING in mcrypt_create_iv when not enough data
has been fetched (Windows). (Pierre)
. Fixed bug #55169 (mcrypt_create_iv always fails to gather sufficient random
data on Windows). (Pierre)
- PDO DBlib:
. Fixed bug #54329 (MSSql extension memory leak).
(dotslashpok at gmail dot com)
30 Jun 2011, PHP 5.3.7 RC2
- Core:
. Fixed crash in error_log(). (Felipe) Reported by Mateusz Kocielski.
. Fixed bug #55082 (var_export() doesn't escape properties properly).
(Gustavo)
- DateTime extension:
. Fixed bug where the DateTime object got changed while using date_diff().
(Derick)
- DBA extension:
. Supress warning on non-existent file open with Berkeley DB 5.2 (Chris Jones)
- PDO ODBC driver:
. Fixed data type usage in 64bit. (leocsilva at gmail dot com)
- PHP-FPM SAPI:
. Implemented FR #54499 (FPM ping and status_path should handle HEAD request). (fat)
. Implemented FR #54172 (Overriding the pid file location of php-fpm). (fat)
. Fixed missing Expires and Cache-Control headers for ping and status pages.
(fat)
. Fixed memory leak. (fat) Reported and fixed by Giovanni Giacobbi.
. Fixed wrong value of log_level when invoking fpm with -tt. (fat)
- SPL extension:
. Fixed bug #54971 (Wrong result when using iterator_to_array with use_keys
on true). (Pierrick)
16 Jun 2011, PHP 5.3.7 RC1
- Upgraded bundled SQLite to version 3.7.6.3. (Scott)
- Upgraded bundled PCRE to version 8.12. (Scott)
- Increased the backtrack limit from 100000 to 1000000 (Rasmus)
- Zend Engine:
. Fixed bug #55007 (compiler fail after previous fail). (Felipe)
. Fixed bug #54910 (Crash when calling call_user_func with unknown function
name). (Dmitry)
. Fixed bug #54804 (__halt_compiler and imported namespaces).
(Pierrick, Felipe)
. Fixed bug #54624 (class_alias and type hint). (Felipe)
. Fixed bug #54585 (track_errors causes segfault). (Dmitry)
. Fixed bug #54423 (classes from dl()'ed extensions are not destroyed).
(Tony, Dmitry)
. Fixed bug #54372 (Crash accessing global object itself returned from its
__get() handle). (Dmitry)
. Fixed bug #54358 (Closure, use and reference). (Dmitry)
. Fixed bug #54367 (Use of closure causes problem in ArrayAccess). (Dmitry)
. Fixed bug #54039 (use() of static variables in lambda functions can break
staticness). (Dmitry)
. Fixed bug #54262 (Crash when assigning value to a dimension in a non-array).
(Dmitry)
- Core:
. Implemented FR #54459 (Range function accuracy). (Adam)
. Added PHP_MANDIR constant telling where the manpages were installed into,
and an --man-dir argument to php-config. (Hannes)
. Fixed a crash inside dtor for error handling. (Ilia)
. Fixed bug #54939 (File path injection vulnerability in RFC1867 File upload
filename). (Felipe) Reported by Krzysztof Kotowicz. (CVE-2011-2202)
. Fixed bug #54935 php_win_err can lead to crash. (Pierre)
. Fixed bug #54924 (assert.* is not being reset upon request shutdown). (Ilia)
. Fixed bug #54895 (Fix compiling with older gcc version without need for
membar_producer macro). (mhei at heimpold dot de)
. Fixed bug #54723 (getimagesize() doesn't check the full ico signature).
(Scott)
. Fixed bug #54580 (get_browser() segmentation fault when browscap ini
directive is set through php_admin_value). (Gustavo)
. Fixed bug #54238 (use-after-free in substr_replace()). (Stas)
(CVE-2011-1148)
. Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment).
(tomas dot brastavicius at quantum dot lt, Pierrick)
. Fixed bug #54137 (file_get_contents POST request sends additional line
break). (maurice-php at mertinkat dot net, Ilia)
. Fixed bug #54866 (incorrect accounting for realpath_cache_size).
(Dustin Ward)
. Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt
size). (Pierre, os at irj dot ru)
. Fixed bug #53848 (fgetcsv() ignores spaces at beginnings of fields). (Ilia)
. Alternative fix for bug #52550, as applied to the round() function (signed
overflow), as the old fix impacted the algorithm for numbers with magnitude
smaller than 0. (Gustavo)
. Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning). (Ilia)
. Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode
filter). (slusarz at curecanti dot org)
. Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using
TMPDIR on Windows). (Pierre)
- Apache2 Handler SAPI:
. Fixed bug #54529 (SAPI crashes on apache_config.c:197).
(hebergement at riastudio dot fr)
- CLI SAPI:
. Fixed bug #52496 (Zero exit code on option parsing failure). (Ilia)
- cURL:
. Added ini option curl.cainfo (support for custom cert db). (Pierre)
. Added CURLINFO_REDIRECT_URL support. (Daniel Stenberg, Pierre)
. Added support for CURLOPT_MAX_RECV_SPEED_LARGE and
CURLOPT_MAX_SEND_SPEED_LARGE. FR #51815. (Pierrick)
- DateTime extension:
. Fixed bug #54340 (DateTime::add() method bug). (Adam)
. Fixed bug #54316 (DateTime::createFromFormat does not handle trailing '|'
correctly). (Adam)
. Fixed bug #54283 (new DatePeriod(NULL) causes crash). (Felipe)
. Fixed bug #51819 (Case discrepancy in timezone names cause Uncaught
exception and fatal error). (Hannes)
- DBA extension:
. Fixed bug #54242 (dba_insert returns true if key already exists). (Felipe)
- Exif extesion:
. Fixed bug #54121 (error message format string typo). (Ilia)
- Fileinfo extension:
. Fixed bug #54934 (Unresolved symbol strtoull in HP-UX 11.11). (Felipe)
- Filter extension:
. Added 3rd parameter to filter_var_array() and filter_input_array()
functions that allows disabling addition of empty elements. (Ilia)
. Fixed bug #53037 (FILTER_FLAG_EMPTY_STRING_NULL is not implemented). (Ilia)
- Interbase extension:
. Fixed bug #54269 (Short exception message buffer causes crash). (Felipe)
- intl extension:
. Implemented FR #54540 (Allow loading of arbitrary resource bundles when
fallback is disabled). (David Zuelke, Stas)
. Implemented FR #54561 (Expose ICU version info). (David Zuelke, Ilia)
- json extension:
. Fixed bug #54484 (Empty string in json_decode doesn't reset
json_last_error()). (Ilia)
- LDAP extension:
. Fixed bug #53339 (Fails to build when compilng with gcc 4.5 and DSO
libraries). (Clint Byrum, Raphael)
- libxml extension:
. Fixed bug #54601 (Removing the doctype node segfaults). (Hannes)
. Fixed bug #54440 (libxml extension ignores default context). (Gustavo)
- mbstring extension:
. Fixed bug #54494 (mb_substr() mishandles UTF-32LE and UCS-2LE). (Gustavo)
- MySQL Improved extension:
. Fixed Bug #54221 (mysqli::get_warnings segfault when used in multi queries).
(Andrey)
- mysqlnd
. Fixed crash when using more than 28,000 bound parameters. Workaround is to
set mysqlnd.net_cmd_buffer_size to at least 9000. (Andrey)
. Fixed bug #54674 mysqlnd valid_sjis_(head|tail) is using invalid operator
and range). (nihen at megabbs dot com, Andrey)
- OpenSSL extension
. Fixed bug #54992 (Stream not closed and error not returned when SSL
CN_match fails). (Gustavo, laird_ngrps at dodo dot com dot au)
- Oracle Database extension (OCI8):
. Added oci_client_version() returning the runtime Oracle client library
version (Chris Jones)
- PDO extension:
. Fixed bug #54929 (Parse error with single quote in sql comment). (Felipe)
. Fixed bug #52104 (bindColumn creates Warning regardless of ATTR_ERRMODE
settings). (Ilia)
- PDO DBlib driver:
. Fixed bug #54167 (PDO_DBLIB returns null on SQLUNIQUE field).
(mjh at hodginsmedia dot com, Felipe)
- PDO MySQL driver:
. Fixed bug #54644 (wrong pathes in php_pdo_mysql_int.h). (Tony, Johannes)
. Fixed bug #53782 (foreach throws irrelevant exception). (Johannes, Andrey)
. Implemented FR #48587 (MySQL PDO driver doesn't support SSL connections).
(Rob)
- PDO PostgreSQL driver:
. Fixed bug #54318 (Non-portable grep option used in PDO pgsql
configuration). (bwalton at artsci dot utoronto dot ca)
- PDO Oracle driver:
. Fixed bug #44989 (64bit Oracle RPMs still not supported by pdo-oci).
(jbnance at tresgeek dot net)
- Phar extension:
. Fixed bug #54395 (Phar::mount() crashes when calling with wrong parameters).
(Felipe)
- PHP-FPM SAPI:
. Added xml format to the status page. (fat)
. Removed timestamp in logs written by children processes. (fat)
. Fixed exit at FPM startup on fpm_resources_prepare() errors. (fat)
. Added master rlimit_files and rlimit_core in the global configuration
settings. (fat)
. Removed pid in debug logs written by chrildren processes. (fat)
. Added custom access log (also added per request %CPU and memory
mesurement). (fat)
. Added a real scoreboard and several improvements to the status page. (fat)
- Reflection extension:
. Fixed bug #54347 (reflection_extension does not lowercase module function
name). (Felipe, laruence at yahoo dot com dot cn)
- SOAP extension:
. Fixed bug #54312 (soap_version logic bug). (tom at samplonius dot org)
- Sockets extension:
. Fixed stack buffer overflow in socket_connect(). (CVE-2011-1938)
Found by Mateusz Kocielski, Marek Kroemeke and Filip Palian. (Felipe)
. Changed socket_set_block() and socket_set_nonblock() so they emit warnings
on error. (Gustavo)
. Fixed bug #51958 (socket_accept() fails on IPv6 server sockets). (Gustavo)
- SPL extension:
. Fixed bug #54970 (SplFixedArray::setSize() isn't resizing). (Felipe)
. Fixed bug #54609 (Certain implementation(s) of SplFixedArray cause hard
crash). (Felipe)
. Fixed bug #54384 (Dual iterators, GlobIterator, SplFileObject and
SplTempFileObject crash when user-space classes don't call the paren
constructor). (Gustavo)
. Fixed bug #54292 (Wrong parameter causes crash in
SplFileObject::__construct()). (Felipe)
. Fixed bug #54291 (Crash iterating DirectoryIterator for dir name starting
with \0). (Gustavo)
. Fixed bug #54281 (Crash in non-initialized RecursiveIteratorIterator).
(Felipe)
- Streams:
. Fixed bug #54946 (stream_get_contents infinite loop). (Hannes)
. Fixed bug #54623 (Segfault when writing to a persistent socket after
closing a copy of the socket). (Gustavo)
. Zip extension:
. Fixed bug #54681 (addGlob() crashes on invalid flags). (Felipe)
17 Mar 2011, PHP 5.3.6
- Upgraded bundled Sqlite3 to version 3.7.4. (Ilia)
- Upgraded bundled PCRE to version 8.11. (Ilia)
- Zend Engine:
. Indirect reference to $this fails to resolve if direct $this is never used
in method. (Scott)
. Added options to debug backtrace functions. (Stas)
. Fixed bug numerous crashes due to setlocale (crash on error, pcre, mysql
etc.) on Windows in thread safe mode. (Pierre)
. Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime
error). (Dmitry)
. Fixed Bug #53958 (Closures can't 'use' shared variables by value and by
reference). (Dmitry)
. Fixed Bug #53629 (memory leak inside highlight_string()). (Hannes, Ilia)
. Fixed Bug #51458 (Lack of error context with nested exceptions). (Stas)
. Fixed Bug #47143 (Throwing an exception in a destructor causes a fatal
error). (Stas)
. Fixed bug #43512 (same parameter name can be used multiple times in
method/function definition). (Felipe)
- Core:
. Added ability to connect to HTTPS sites through proxy with basic
authentication using stream_context/http/header/Proxy-Authorization (Dmitry)
. Changed default value of ini directive serialize_precision from 100 to 17.
(Gustavo)
. Fixed bug #54055 (buffer overrun with high values for precision ini
setting). (Gustavo)
. Fixed bug #53959 (reflection data for fgetcsv out-of-date). (Richard)
. Fixed bug #53577 (Regression introduced in 5.3.4 in open_basedir with a
trailing forward slash). (lekensteyn at gmail dot com, Pierre)
. Fixed bug #53682 (Fix compile on the VAX). (Rasmus, jklos)
. Fixed bug #48484 (array_product() always returns 0 for an empty array).
(Ilia)
. Fixed bug #48607 (fwrite() doesn't check reply from ftp server before
exiting). (Ilia)
- Calendar extension:
. Fixed bug #53574 (Integer overflow in SdnToJulian, sometimes leading to
segfault). (Gustavo)
- DOM extension:
. Implemented FR #39771 (Made DOMDocument::saveHTML accept an optional DOMNode
like DOMDocument::saveXML). (Gustavo)
- DateTime extension:
. Fixed a bug in DateTime->modify() where absolute date/time statements had
no effect. (Derick)
. Fixed bug #53729 (DatePeriod fails to initialize recurrences on 64bit
big-endian systems). (Derick, rein@basefarm.no)
. Fixed bug #52808 (Segfault when specifying interval as two dates). (Stas)
. Fixed bug #52738 (Can't use new properties in class extended from
DateInterval). (Stas)
. Fixed bug #52290 (setDate, setISODate, setTime works wrong when DateTime
created from timestamp). (Stas)
. Fixed bug #52063 (DateTime constructor's second argument doesn't have a
null default value). (Gustavo, Stas)
- Exif extension:
. Fixed bug #54002 (crash on crafted tag, reported by Luca Carettoni).
(Pierre) (CVE-2011-0708)
- Filter extension:
. Fixed bug #53924 (FILTER_VALIDATE_URL doesn't validate port number).
(Ilia, Gustavo)
. Fixed bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges).
(Ilia)
. Fixed bug #52209 (INPUT_ENV returns NULL for set variables (CLI)). (Ilia)
. Fixed bug #47435 (FILTER_FLAG_NO_RES_RANGE don't work with ipv6).
(Ilia, valli at icsurselva dot ch)
- Fileinfo extension:
. Fixed bug #54016 (finfo_file() Cannot determine filetype in archives).
(Hannes)
- Gettext
. Fixed bug #53837 (_() crashes on Windows when no LANG or LANGUAGE
environment variable are set). (Pierre)
- IMAP extension:
. Implemented FR #53812 (get MIME headers of the part of the email). (Stas)
. Fixed bug #53377 (imap_mime_header_decode() doesn't ignore \t during long
MIME header unfolding). (Adam)
- Intl extension:
. Fixed bug #53612 (Segmentation fault when using cloned several intl
objects). (Gustavo)
. Fixed bug #53512 (NumberFormatter::setSymbol crash on bogus $attr values).
(Felipe)
. Implemented clone functionality for number, date & message formatters.
(Stas).
- JSON extension:
. Fixed bug #53963 (Ensure error_code is always set during some failed
decodings). (Scott)
- mysqlnd
. Fixed problem with always returning 0 as num_rows for unbuffered sets.
(Andrey, Ulf)
- MySQL Improved extension:
. Added 'db' and 'catalog' keys to the field fetching functions (FR #39847).
(Kalle)
. Fixed buggy counting of affected rows when using the text protocol. The
collected statistics were wrong when multi_query was used with mysqlnd
(Andrey)
. Fixed bug #53795 (Connect Error from MySqli (mysqlnd) when using SSL).
(Kalle)
. Fixed bug #53503 (mysqli::query returns false after successful LOAD DATA
query). (Kalle, Andrey)
. Fixed bug #53425 (mysqli_real_connect() ignores client flags when built to
call libmysql). (Kalle, tre-php-net at crushedhat dot com)
- OpenSSL extension:
. Fixed stream_socket_enable_crypto() not honoring the socket timeout in
server mode. (Gustavo)
. Fixed bug #54060 (Memory leaks when openssl_encrypt). (Pierre)
. Fixed bug #54061 (Memory leaks when openssl_decrypt). (Pierre)
. Fixed bug #53592 (stream_socket_enable_crypto() busy-waits in client mode).
(Gustavo)
. Implemented FR #53447 (Cannot disable SessionTicket extension for servers
that do not support it) by adding a no_ticket SSL context option. (Adam,
Tony)
- PDO MySQL driver:
. Fixed bug #53551 (PDOStatement execute segfaults for pdo_mysql driver).
(Johannes)
. Implemented FR #47802 (Support for setting character sets in DSN strings).
(Kalle)
- PDO Oracle driver:
. Fixed bug #39199 (Cannot load Lob data with more than 4000 bytes on
ORACLE 10). (spatar at mail dot nnov dot ru)
- PDO PostgreSQL driver:
. Fixed bug #53517 (segfault in pgsql_stmt_execute() when postgres is down).
(gyp at balabit dot hu)
- Phar extension:
. Fixed bug #54247 (format-string vulnerability on Phar). (Felipe)
(CVE-2011-1153)
. Fixed bug #53541 (format string bug in ext/phar).
(crrodriguez at opensuse dot org, Ilia)
. Fixed bug #53898 (PHAR reports invalid error message, when the directory
does not exist). (Ilia)
- PHP-FPM SAPI:
. Enforce security in the fastcgi protocol parsing.
(ef-lists at email dotde)
. Fixed bug #53777 (php-fpm log format now match php_error log format). (fat)
. Fixed bug #53527 (php-fpm --test doesn't set a valuable return value). (fat)
. Fixed bug #53434 (php-fpm slowlog now also logs the original request). (fat)
- Readline extension:
. Fixed bug #53630 (Fixed parameter handling inside readline() function).
(jo at feuersee dot de, Ilia)
- Reflection extension:
. Fixed bug #53915 (ReflectionClass::getConstant(s) emits fatal error on
constants with self::). (Gustavo)
- Shmop extension:
. Fixed bug #54193 (Integer overflow in shmop_read()). (Felipe)
Reported by Jose Carlos Norte <jose at eyeos dot org> (CVE-2011-1092)
- SNMP extension:
. Fixed bug #51336 (snmprealwalk (snmp v1) does not handle end of OID tree
correctly). (Boris Lytochkin)
- SOAP extension:
. Fixed possible crash introduced by the NULL poisoning patch.
(Mateusz Kocielski, Pierre)
- SPL extension:
. Fixed memory leak in DirectoryIterator::getExtension() and
SplFileInfo::getExtension(). (Felipe)
. Fixed bug #53914 (SPL assumes HAVE_GLOB is defined). (Chris Jones)
. Fixed bug #53515 (property_exists incorrect on ArrayObject null and 0
values). (Felipe)
. Fixed bug #49608 (Using CachingIterator on DirectoryIterator instance
segfaults). (Felipe)
. Added SplFileInfo::getExtension(). FR #48767. (Peter Cowburn)
- SQLite3 extension:
. Fixed memory leaked introduced by the NULL poisoning patch.
(Mateusz Kocielski, Pierre)
. Fixed memory leak on SQLite3Result and SQLite3Stmt when assigning to a
reference. (Felipe)
. Add SQlite3_Stmt::readonly() for checking if a statement is read only.
(Scott)
. Implemented FR #53466 (SQLite3Result::columnType() should return false after
all of the rows have been fetched). (Scott)
- Streams:
. Fixed bug #54092 (Segmentation fault when using HTTP proxy with the FTP
wrapper). (Gustavo)
. Fixed bug #53913 (Streams functions assume HAVE_GLOB is defined). (Chris
Jones)
. Fixed bug #53903 (userspace stream stat callback does not separate the
elements of the returned array before converting them). (Gustavo)
. Implemented FR #26158 (open arbitrary file descriptor with fopen). (Gustavo)
- Tokenizer Extension
. Fixed bug #54089 (token_get_all() does not stop after __halt_compiler).
(Ilia)
- XSL extension:
. Fixed memory leaked introduced by the NULL poisoning patch.
(Mateusz Kocielski, Pierre)
- Zip extension:
. Added the filename into the return value of stream_get_meta_data(). (Hannes)
. Fixed bug #53923 (Zip functions assume HAVE_GLOB is defined). (Adam)
. Fixed bug #53893 (Wrong return value for ZipArchive::extractTo()). (Pierre)
. Fixed bug #53885 (ZipArchive segfault with FL_UNCHANGED on empty archive).
(Stas, Maksymilian Arciemowicz). (CVE-2011-0421)
. Fixed bug #53854 (Missing constants for compression type). (Richard, Adam)
. Fixed bug #53603 (ZipArchive should quiet stat errors). (brad dot froehle at
gmail dot com, Gustavo)
. Fixed bug #53579 (stream_get_contents() segfaults on ziparchive streams).
(Hannes)
. Fixed bug #53568 (swapped memset arguments in struct initialization).
(crrodriguez at opensuse dot org)
. Fixed bug #53166 (Missing parameters in docs and reflection definition).
(Richard)
. Fixed bug #49072 (feof never returns true for damaged file in zip).
(Gustavo, Richard Quadling)
06 Jan 2011, PHP 5.3.5
- Fixed Bug #53632 (infinite loop with x87 fpu). (CVE-2010-4645) (Scott,
Rasmus)
09 Dec 2010, PHP 5.3.4
- Upgraded bundled Sqlite3 to version 3.7.3. (Ilia)
- Upgraded bundled PCRE to version 8.10. (Ilia)
@@ -831,8 +7,7 @@
- Security enhancements:
. Fixed crash in zip extract method (possible CWE-170).
(Maksymilian Arciemowicz, Pierre)
. Paths with NULL in them (foo\0bar.txt) are now considered as invalid.
(Rasmus)
. Paths with NULL in them (foo\0bar.txt) are now considered as invalid. (Rasmus)
. Fixed a possible double free in imap extension (Identified by Mateusz
Kocielski). (CVE-2010-4150). (Ilia)
. Fixed NULL pointer dereference in ZipArchive::getArchiveComment.
@@ -859,8 +34,8 @@
. Implemented symbolic links support for open_basedir checks. (Pierre)
. Implemented FR #51804, SplFileInfo::getLinkTarget on Windows. (Pierre)
. Implemented FR #50692, not uploaded files don't count towards
max_file_uploads limit. As a side improvement, temporary files are not
opened for empty uploads and, in debug mode, 0-length uploads. (Gustavo)
max_file_uploads limit. As a side improvement, temporary files are not opened
for empty uploads and, in debug mode, 0-length uploads. (Gustavo)
- Improved MySQLnd:
. Added new character sets to mysqlnd, which are available in MySQL 5.5
@@ -897,12 +72,12 @@
. Fixed bug #53141 (autoload misbehaves if called from closing session).
(ladislav at marek dot su)
. Fixed bug #53021 (In html_entity_decode, failure to convert numeric entities
with ENT_NOQUOTES and ISO-8859-1). Fixed and extended the fix of
ENT_NOQUOTES in html_entity_decode that had introduced the bug (rev
#185591) to other encodings. Additionaly, html_entity_decode() now doesn't
decode &#34; if ENT_NOQUOTES is given. (Gustavo)
. Fixed bug #52931 (strripos not overloaded with function overloading
enabled). (Felipe)
with ENT_NOQUOTES and ISO-8859-1). Fixed and extended the fix of ENT_NOQUOTES
in html_entity_decode that had introduced the bug (rev #185591) to other
encodings. Additionaly, html_entity_decode() now doesn't decode &#34; if
ENT_NOQUOTES is given. (Gustavo)
. Fixed bug #52931 (strripos not overloaded with function overloading enabled).
(Felipe)
. Fixed bug #52772 (var_dump() doesn't check for the existence of
get_class_name before calling it). (Kalle, Gustavo)
. Fixed bug #52534 (var_export array with negative key). (Felipe)
@@ -916,8 +91,7 @@
other platforms). (Pierre)
. Fixed bug #49687 (utf8_decode vulnerabilities and deficiencies in the number
of reported malformed sequences). (CVE-2010-3870) (Gustavo)
. Fixed bug #49407 (get_html_translation_table doesn't handle UTF-8).
(Gustavo)
. Fixed bug #49407 (get_html_translation_table doesn't handle UTF-8). (Gustavo)
. Fixed bug #48831 (php -i has different output to php --ini). (Richard,
Pierre)
. Fixed bug #47643 (array_diff() takes over 3000 times longer than php 5.2.4).
@@ -1018,8 +192,8 @@
words). (Ilia)
- Intl extension:
. Fixed crashes on invalid parameters in intl extension. (CVE-2010-4409).
(Stas, Maksymilian Arciemowicz)
. Fixed crashes on invalid parameters in intl extension. (CVE-2010-4409). (Stas, Maksymilian
Arciemowicz)
. Added support for formatting the timestamp stored in a DateTime object.
(Stas)
. Fixed bug #50590 (IntlDateFormatter::parse result is limited to the integer
@@ -1029,8 +203,8 @@
. Fixed bug #53273 (mb_strcut() returns garbage with the excessive length
parameter). (CVE-2010-4156) (Mateusz Kocielski, Pierre, Moriyoshi)
. Fixed bug #52981 (Unicode casing table was out-of-date. Updated with
UnicodeData-6.0.0d7.txt and included the source of the generator program
with the distribution) (Gustavo).
UnicodeData-6.0.0d7.txt and included the source of the generator program with
the distribution) (Gustavo).
. Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header).
(Adam)
@@ -1101,8 +275,8 @@
. Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they
were not available). (fat)
. Fixed bug #52693 (configuration file errors are not logged to stderr). (fat)
. Fixed bug #52674 (FPM Status page returns inconsistent Content-Type
headers). (fat)
. Fixed bug #52674 (FPM Status page returns inconsistent Content-Type headers).
(fat)
. Fixed bug #52498 (libevent was not only linked to php-fpm). (fat)
- PDO:
@@ -1160,9 +334,9 @@
- Streams:
. Fixed forward stream seeking emulation in streams that don't support seeking
in situations where the read operation gives back less data than requested
and when there was data in the buffer before the emulation started. Also
made more consistent its behavior -- should return failure every time less
data than was requested was skipped. (Gustavo)
and when there was data in the buffer before the emulation started. Also made
more consistent its behavior -- should return failure every time less data
than was requested was skipped. (Gustavo)
. Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails
with streams opened with, inter alia, the 'xb' mode). (Gustavo)
. Fixed bug #53006 (stream_get_contents has an unpredictable behavior when the
-142
View File
@@ -1,142 +0,0 @@
$Id: README.NEW-OUTPUT-API 219039 2006-08-30 07:39:09Z mike $
API adjustment to the old output control code:
Everything now resides beneath the php_output namespace,
and there's an API call for every output handler op.
Checking output control layers status:
// Using OG()
php_output_get_status(TSRMLS_C);
Starting the default output handler:
// php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC);
php_output_start_default(TSRMLS_C);
Starting an user handler by zval:
// php_start_ob_buffer(zhandler, chunk_size, erase TSRMLS_CC);
php_output_start_user(zhandler, chunk_size, flags TSRMLS_CC);
Starting an internal handler whithout context:
// php_ob_set_internal_handler(my_php_output_handler_func_t, buffer_size, "output handler name", erase TSRMLS_CC);
php_output_start_internal(handler_name, handler_name_len, my_php_output_handler_func_t, chunk_size, flags TSRMLS_CC);
Starting an internal handler with context:
// not possible with old API
php_output_handler *h;
h = php_output_handler_create_internal(handler_name, handler_name_len, my_php_output_handler_context_func_t, chunk_size, flags TSRMLS_CC);
php_output_handler_set_context(h, my_context, my_context_dtor);
php_output_handler_start(h TSRMLS_CC);
Testing whether a certain output handler has already been started:
// php_ob_handler_used("output handler name" TSRMLS_CC);
php_output_handler_started(handler_name, handler_name_len TSRMLS_CC);
Flushing one output buffer:
// php_ob_end_buffer(1, 1 TSRMLS_CC);
php_output_flush(TSRMLS_C);
Flushing all output buffers:
// not possible with old API
php_output_flush_all(TSRMLS_C);
Cleaning one output buffer:
// php_ob_end_buffer(0, 1 TSRMLS_CC);
php_output_clean(TSRMLS_C);
Cleaning all output buffers:
// not possible with old API
php_output_clean_all(TSRMLS_C);
Discarding one output buffer:
// php_ob_end_buffer(0, 0 TSRMLS_CC);
php_output_discard(TSRMLS_C);
Discarding all output buffers:
// php_ob_end_buffers(0 TSRMLS_CC);
php_output_discard_all(TSRMLS_C);
Stopping (and dropping) one output buffer:
// php_ob_end_buffer(1, 0 TSRMLS_CC)
php_output_end(TSRMLS_C);
Stopping (and dropping) all output buffers:
// php_ob_end_buffers(1, 0 TSRMLS_CC);
php_output_end_all(TSRMLS_C);
Retrieving output buffers contents:
// php_ob_get_buffer(zstring TSRMLS_CC);
php_output_get_contents(zstring TSRMLS_CC);
Retrieving output buffers length:
// php_ob_get_length(zlength TSRMLS_CC);
php_output_get_length(zlength TSRMLS_CC);
Retrieving output buffering level:
// OG(nesting_level);
php_output_get_level(TSRMLS_C);
Issue a warning because of an output handler conflict:
// php_ob_init_conflict("to be started handler name", "to be tested if already started handler name" TSRMLS_CC);
php_output_handler_conflict(new_handler_name, new_handler_name_len, set_handler_name, set_handler_name_len TSRMLS_CC);
Registering a conflict checking function, which will be checked prior starting the handler:
// not possible with old API, unless hardcoding into output.c
php_output_handler_conflict_register(handler_name, handler_name_len, my_php_output_handler_conflict_check_t TSRMLS_CC);
Registering a reverse conflict checking function, which will be checked prior starting the specified foreign handler:
// not possible with old API
php_output_handler_reverse_conflict_register(foreign_handler_name, foreign_handler_name_len, my_php_output_handler_conflict_check_t TSRMLS_CC);
Facilitating a context from within an output handler callable with ob_start():
// not possible with old API
php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ, (void *) &custom_ctx_ptr_ptr TSRMLS_CC);
Disabling of the output handler by itself:
//not possible with old API
php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_DISABLE, NULL TSRMLS_CC);
Marking an output handler immutable by itself because of irreversibility of its operation:
// not possible with old API
php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE, NULL TSRMLS_CC);
Restarting the output handler because of a CLEAN operation:
// not possible with old API
if (flags & PHP_OUTPUT_HANDLER_CLEAN) { ... }
Recognizing by the output handler itself if it gets discarded:
// not possible with old API
if ((flags & PHP_OUTPUT_HANDLER_CLEAN) && (flags & PHP_OUTPUT_HANDLER_FINAL)) { ... }
Output handler hooks
The output handler can change its abilities at runtime. Eg. the gz handler can
remove the CLEANABLE and REMOVABLE bits when the first output has passed through it;
or handlers implemented in C to be used with ob_start() can contain a non-global
context:
PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ
pass a void*** pointer as second arg to receive the address of a pointer
pointer to the opaque field of the output handler context
PHP_OUTPUT_HANDLER_HOOK_GET_FLAGS
pass a int* pointer as second arg to receive the flags set for the output handler
PHP_OUTPUT_HANDLER_HOOK_GET_LEVEL
pass a int* pointer as second arg to receive the level of this output handler
(starts with 0)
PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE
the second arg is ignored; marks the output handler to be neither cleanable
nor removable
PHP_OUTPUT_HANDLER_HOOK_DISABLE
the second arg is ignored; marks the output handler as disabled
Open questions
Should the userland API be adjusted and unified?
Many bits of the manual (and very first implementation) do not comply
with the behaviour of the current (to be obsoleted) code, thus should
the manual or the behaviour be adjusted?
END
-1
View File
@@ -51,7 +51,6 @@ Type specifiers
L - long, limits out-of-range numbers to LONG_MAX/LONG_MIN (long)
o - object of any type (zval*)
O - object of specific type given by class entry (zval*, zend_class_entry)
p - valid path (string without null bytes in the middle) and its length (char*, int)
r - resource (zval*)
s - string (with possible null bytes) and its length (char*, int)
z - the actual zval (zval*)
+7 -20
View File
@@ -51,40 +51,27 @@ SUCH DAMAGE.
6. ext/standard crypt's blowfish implementation
The crypt_blowfish homepage is:
http://www.openwall.com/crypt/
This code comes from John the Ripper password cracker, with reentrant
and crypt(3) interfaces added, but optimizations specific to password
cracking removed.
Written by Solar Designer <solar at openwall.com> in 1998-2011.
No copyright is claimed, and the software is hereby placed in the public
domain. In case this attempt to disclaim copyright and place the software
in the public domain is deemed null and void, then the software is
Copyright (c) 1998-2011 Solar Designer and it is hereby released to the
general public under the following terms:
Written by Solar Designer <solar at openwall.com> in 1998-2002 and
placed in the public domain.
Redistribution and use in source and binary forms, with or without
modification, are permitted.
There's ABSOLUTELY NO WARRANTY, express or implied.
There's absolutely no warranty.
It is my intent that you should be able to use this on your system,
as part of a software package, or anywhere else to improve security,
as a part of a software package, or anywhere else to improve security,
ensure compatibility, or for any other purpose. I would appreciate
it if you give credit where it is due and keep your modifications in
the public domain as well, but I don't require that in order to let
you place this code and any modifications you make under a license
of your choice.
This implementation is mostly compatible with OpenBSD's bcrypt.c (prefix
"$2a$") by Niels Provos <provos at citi.umich.edu>, and uses some of his
This implementation is compatible with OpenBSD bcrypt.c (version 2a)
by Niels Provos <provos at citi.umich.edu>, and uses some of his
ideas. The password hashing algorithm was designed by David Mazieres
<dm at lcs.mit.edu>. For more information on the level of compatibility,
please refer to the comments in BF_set_key() and to the crypt(3) man page
included in the crypt_blowfish tarball.
<dm at lcs.mit.edu>.
There's a paper on the algorithm that explains its design decisions:
+32 -32
View File
@@ -20,18 +20,12 @@ php/QA/bug websites try to have someone from the webmaster team (Bjori) on hand.
5. Verify the tags to be extra sure everything was tagged properly.
6. Moving extensions from/to PECL requires write acces to the destination.
Most developers should have this.
6. Moving extensions from/to PECL requires root level access to the CVS server.
Contact systems@php.net to get this taken care of.
Moving extensions from php-src to PECL
- Checkout the pecl directory, most likely you want a sparse-root checkout
svn co --depth=empty https://svn.php.net/repository/pecl
- Create an directory for the extension incl. branch and tag structure,
no trunk at this point and commit this to svn
cd pecl; mkdir foo foo/tags foo/branches; svn add foo; svn commit
- Move the extension from php-src to the new location
svn mv https://svn.php.net/repository/php/php-src/trunk/ext/foo \
https://svn.php.net/repository/pecl/foo/trunk
- Filesystem: cp -r php-src/ext/foo pecl/foo
- cvs rm php-src/ext/foo
If the extension is still usable or not dead, in cooperation with the extension
maintainers if any:
@@ -39,23 +33,25 @@ maintainers if any:
- create the package.xml, commit
- release the package
For Moving extensions from PECL to php-src the svn mv has to be tone the other
way round.
Moving extensions from PECL to php-src
- Filesystem: cp -r pecl/foo php-src/ext/foo
OR depending on the wishes from the PECL extension maintainer.
- Filesystem: ln -s pecl/foo php-src/ext/foo
Rolling a non stable release (alpha/beta/RC)
--------------------------------------------
1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
2. run the "scripts/dev/credits" script in php-src and commit the changes in the
credits files in ext/standard.
3. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
2. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
Do not use abbreviations for alpha and beta.
4. Commit those changes and note the revision id.
3. Commit those changes
5. tag the repository with the version. To do the tag in a fast way do a svn copy on the server using full URLs. You should use the revision id from the above commit to prevent mistakes in case there was a commit in between. f.e. "``svn cp https://svn.php.net/repository/php/php-src/branches/PHP_5_3@308399 https://svn.php.net/repository/php/php-src/tags/php_5_3_6RC1``"
4. run the "scripts/dev/credits" script in php-src and commit the changes in the
credits files in ext/standard.
5. tag the repository with the version f.e. "``cvs tag php_4_4_1RC1``"
(of course, you need to change that to the version you're rolling an RC for).
6. Bump up the version numbers in ``main/php_version.h``, ``configure.in``
@@ -69,7 +65,7 @@ correctly work.
8. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
branch if you're rolling 4.4.x releases).
9. You do not have to update the tree, but of course you can with "``svn up``".
9. You do not have to update the tree, but of course you can with "``cvs up -dP``".
10. run: ``./makedist php 4.4.1RC1``, this will export the tree, create configure
and build two tarballs (one gz and one bz2).
@@ -104,19 +100,21 @@ Derick) run the following commands for you:
``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
3. Update ``web/qa/trunk/include/release-qa.php`` with the appropriate information.
See the documentation within release-qa.php for more information, but all releases
and RCs are configured here. Only $QA_RELEASES needs to be edited.
3. Update the MD5 sums in ``web/qa/trunk/include/rc-md5sums.txt`` (no empty lines).
Example: When rolling an RC, set the 'rc' with appropriate information for the
given version.
4. Update in ``web/qa/trunk/include/release-qa.php`` constants with the new RC and
commit this.
Note: Remember to update the MD5 checksum information.
a. ``$BUILD_TEST_RELEASES`` = array("4.4.7RC1", "5.2.2RC1")
b. ``$CURRENT_QA_RELEASE_4`` = "4.4.7RC1" (``$CURRENT_QA_RELEASE_5`` for PHP5)
1. Update in ``web/php-bugs/trunk/include/php_versions.php`` to include the new RC and commit.
c. ``$RELEASE_PROCESS`` = array(4 => true, 5 => true)
2. Update ``web/php/trunk/include/version.inc`` (x=major version number)
1. Update in ``php-bugs/trunk/include/functions.inc`` the ``show_version_option``
function to include the new RC and commit.
2. Update ``phpweb/include/version.inc`` (x=major version number)
a. ``$PHP_x_RC`` = "5.3.0RC1"
@@ -124,7 +122,7 @@ Derick) run the following commands for you:
3. Commit those changes:
a. ``svn commit web/qa/trunk web/php-bugs/trunk web/php/trunk``
a. ``cvs commit include/version.inc include/releases.inc``
4. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
INSTALL and win32/install.txt files which are generated from the PHP manual sources.
@@ -246,11 +244,13 @@ number, and remove the RC from there.
11. Update ``qaweb/include/release-qa.php``
- Update $QA_RELEASES with the appropriate information, which means bumping
the version number to an upcoming version.
a. Update the $BUILD_TEST_RELEASES array with the release name
Example: If PHP 5.3.7 is being released, then PHP 5.3.8 is the next QA version,
so replace 5.3.7 with 5.3.8 within $QA_RELEASES.
b. Update $RELEASE_PROCESS array (set to false)
I. For PHP4: Set $CURRENT_QA_RELEASE_4 to false
II. For PHP5: Set $CURRENT_QA_RELEASE_5 to false
Re-releasing the same version (or -pl)
--------------------------------------
+4 -8
View File
@@ -43,17 +43,13 @@ Having said that, here are the organizational rules::
Currently we have the following branches in use::
trunk The active development branch.
trunk Will become PHP 6.0. This CVS branch is for active development.
branches/PHP_5_4 Is used to release the PHP 5.4.x series. It still allows for
branches/PHP_5_3 Is used to release the PHP 5.3.x series. It still allows for
larger enhancements.
branches/PHP_5_3 Is used to release the PHP 5.3.x series. This is current
stable version and is open for bugfixes and small
improvements (check with RMs if in doubt).
branches/PHP_5_2 Is used to release the PHP 5.2.x series. It is closed for
changes now.
branches/PHP_5_2 Is used to release the PHP 5.2.x series. Only bugfixes are permitted
on this branch (Consult the releasemaster prior to commit).
branches/PHP_5_1 This branch is closed.
+17 -5
View File
@@ -19,7 +19,9 @@ A simple implementation might look like the following. This stores the
original raw user data and adds a my_get_raw() function while the normal
$_POST, $_GET and $_COOKIE arrays are only populated with stripped
data. In this simple example all I am doing is calling strip_tags() on
the data.
the data. If register_globals is turned on, the default globals that
are created will be stripped ($foo) while a $RAW_foo is created with the
original user input.
ZEND_BEGIN_MODULE_GLOBALS(my_input_filter)
zval *post_array;
@@ -153,6 +155,8 @@ PHP_FUNCTION(my_get_raw)
int var_len;
zval **tmp;
zval *array_ptr = NULL;
HashTable *hash_ptr;
char *raw_var;
if(zend_parse_parameters(2 TSRMLS_CC, "ls", &arg, &var, &var_len) == FAILURE) {
return;
@@ -170,15 +174,23 @@ PHP_FUNCTION(my_get_raw)
break;
}
if(!array_ptr) {
RETURN_FALSE;
}
if(!array_ptr) RETURN_FALSE;
if(zend_hash_find(HASH_OF(array_ptr), var, var_len+5, (void **)&tmp) == SUCCESS) {
/*
* I'm changing the variable name here because when running with register_globals on,
* the variable will end up in the global symbol table
*/
raw_var = emalloc(var_len+5); /* RAW_ and a \0 */
strcpy(raw_var, "RAW_");
strlcat(raw_var,var,var_len+5);
hash_ptr = HASH_OF(array_ptr);
if(zend_hash_find(hash_ptr, raw_var, var_len+5, (void **)&tmp) == SUCCESS) {
*return_value = **tmp;
zval_copy_ctor(return_value);
} else {
RETVAL_FALSE;
}
efree(raw_var);
}
+136
View File
@@ -0,0 +1,136 @@
Things to do or at least think about doing in the future. Name in
parenthesis means that person has taken on this project.
Zend
----
* Allow foreach ($array as $k => list($a, $b)) syntax for multi
dimensional arrays.
* Look at replacing c-lib call tolower().
* Make hash API functions work with HASH_OF() to save time.
* Native large number support (probably with GNU GMP)
* Const'ify APIs. Right now, many functions leave parameters untouched,
but don't declare those as const. This makes interaction with other
interfaces difficult which pass const parameters to us.
global
------
* Make sure that all ZTS globals get destructed. Most ts_allocate_id()
calls should have a dtor entry.
* on some platforms unimplemented function will just do nothing
(e.g. symlink) they should print a warning or not even be defined!
(DONE ?)
* --enable-all in configure. (--enable-shared=max ...)
* make configure print out a summary when it's done (like XEmacs)
* replace standard functions which work on static data with
reentrancy-safe functions (DONE?).
* make SAPI conform to CGI/1.1. Currently, all SAPI modules
define REMOTE_ADDR etc. themselves and reach only various level
of compliance.
* see what functions might need to be changed to use HashPosition, so
that the internal array pointer is not affected.
* Move most extensions and PEAR packages out of the PHP CVS tree,
include them again during release packaging.
Other
* use thread-safe resolver functions (either require BIND 8 or adns).
* implement javadoc based function docs template system.
* provide optional IPv6 support (seems to be done?).
* find a better way to implement script timeouts. SIGVTALRM is used
by some POSIX threads implementations (i.e. OpenBSD) and is not
available in ZTS mode.
* Implement flush feature suitable for nested output buffers.
Streams
-------
* Route filestat.c through the wrapper layer; isolate the statcache code
so that it is independent of php functions and can be applied to any
stream/path.
* Implement generalized connection pool for stated protocols such as
ftp and http/1.1 (using keep-alive) to avoid having to negotiate
new command/request stream for each subsequent call; Possibly store
resources in contexts (creating a default context if necessary) to
allow segmentation of connection pools.
* Add a method to take ownership of the memory buffer in memory streams so
that generating string values for zvals doesn't require an estrdup.
* bundle and use curl lib for fopen wrapper.
documentation
-------------
* Add remarks in the documentation which functions are not implemented
on win32.
* Add remarks in the documentation which functions are not binary-safe.
* Update curl documentation (DONE?)
* Add developer documentation.
* Add detailed documentation for Java extension.
ext/curl
--------
* Have a warning scheme for when people use unsupported features.
ext/oci8
--------
* All OCIFetch*() functions should return 0 for no more data and false on
error.
* Have a flag that trims trailing spaces from CHAR fields on retrieval.
* Make allow_call_time_pass_reference=Off working.
* For additional todo information, see oci8.c, in ext/oci8
ext/odbc
--------
For PHP 4.3.0:
* update all php_error calls to php_error_docref where valid
* integrate EXPERIMENTAL ODBC update for use in PHP 5.0, use for
testing purposes only.
For PHP 5.0.0
* Activate EXPERIMENTAL ODBC codebase update
ext/pcre
--------
* Allow user to set PCRE_NOTEMPTY, PCRE_ANCHORED at execution time, maybe
ext/pcntl
---------
* Change internal callback handler to use TICKS
* Remove all zend_extension code
* Add object callback support to pcntl_signal()
ext/session
-----------
For PHP 4.3.0:
* session_abort() to abort session. ie: Do not save session data.
* Allow unset($_SESSION) or unset($HTTP_SESSION_VARS) to unset
session vars regardless of register_globals setting.
Other:
* Maybe implement finer-grained session variables that could be
locked individually.
* Write a network-transparent storage back-end with fallover
facilities
* Provide a callback facility which is executed upon encountering
an unknown class name during deserialization
ext/standard
------------
* Add a version number to data serialized via serialize().
* Possibly modify parsing of GPC data to automatically create arrays if
variable name is seen more than once.
* Implement regex-cache for url-functions.
* Move socket related functions to fsock.c.
ext/wddx
--------
* See if we can support the remaining data types:
binary
http://www.wddx.org/WDDX_SDK_10a/7__References/WDDX_DTD.htm
(Andrei)
* implement wddx_packet_as_javascript(). (Andrei)
other cool stuff
----------------
* PVM extension
vim:et:sw=4:ts=4
+4
View File
@@ -0,0 +1,4 @@
Zend Engine
-----------
- Look at making zend_constant value member be a zval* instead of zval. (Andi)
- Implement inheritance rules for type hints. (Marcus)
+89
View File
@@ -0,0 +1,89 @@
Component: Zend Engine 2
Important stuff to finish: PPP members/PPP methods,
support of overloaded extensions, possibly differentiate
between class and namespace as discussed with Stig in
Germany.
Responsibility: Zeev, Andi, Stas
Time frame: Couple of months for first part and extensions will be
ongoing while PHP is being fixed.
Things to leave for later versions: Native aggregation
support, accessing static members via object and not class.
Component: Aggregation
Responsibility: Andi, Stig?
Time frame: ?
Component: Redesign of API Versioning
Responsibility: ?
Time frame: 1 month
Component: Thread Safety
Identify the extensions that are not thread safe by design
or due to dependant libraries and identify them as such.
If possible try to resolve thread safety issue via code
improvements (if php code or patches will be accepted by
library maintainers). For situations where thread safety
cannot easily be acheived a flag in the extension API is
set so PHP can identify non-thread safe extensions. These
extensions will not be loaded in a ZTS compiled binary
(unless it is cli/cgi).
Responsibility: ?
Time frame: ?
Component: SAPI
Environment variables defined in the CGI spec need to be
verified in each SAPI module that they conform to the CGI
spec correctly. If they do not, the SAPI module needs to
fix the variable prior to script execution. Having this
conformity will aid in having PHP scripts run correctly
under different sapi modules.
Responsibility: Shane Caraveo & each sapi module owner
Timeframe: ? (but shouldn't be much effort, most modules are probably ok)
Component: RPC Abstraction Layer
Porting java, com, dotnet, xmlrpc, corba, soap and python, srm
(are there more ?) to work with the new oo api and preferably
by using ext/rpc.
Responsibility: Harald
Time frame: 2 months (but i have to wait for a few engine features first)
Component: OO Extensions
Each OO extension has to be revised and rewritten to fit into
the new OO model. We should decide which extensions are a must
to have for the release and which can be ported by the maintainer
later as a separate pecl release.
A list of extensions to be extended that have to be investigated:
* browscap
* aggregate
* all *sql extensions (*_fetch_object)
* domxml (seems like christian is rewriting it anyways)
* ming
Responsibility: Harald (, extension maintainers)
Component: Abstract Data Types (ADT)
Responsibility: Sterling, Harald
Time frame: ?
Component: Test Suite
Extending the test suite with atleast a test for every
function in an extension that doesn't require external
resources. Also developing an automated test thing which
cvs ups's, compiles and tests the build on a daily base on
as much platforms/extensions as possible.
The test suite will also be extended to support threaded
testing and testing for differing sapi modules (via http
calls or other methods).
Reponsibility: Derick (, extension maintainers)
Time frame: 3 months
+1 -17
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999-2011, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| Copyright (c) 1999-2010, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
@@ -710,22 +710,6 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
#endif
}
/*
Changes the signal mask of the calling thread
*/
#ifdef HAVE_SIGPROCMASK
TSRM_API int tsrm_sigmask(int how, const sigset_t *set, sigset_t *oldset)
{
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Changed sigmask in thread: %ld", tsrm_thread_id()));
/* TODO: add support for other APIs */
#ifdef PTHREADS
return pthread_sigmask(how, set, oldset);
#else
return sigprocmask(how, set, oldset);
#endif
}
#endif
TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler)
{
+1 -8
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999-2011, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| Copyright (c) 1999-2010, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
@@ -90,10 +90,6 @@ typedef struct {
# define MUTEX_T beos_ben *
#endif
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
typedef void (*ts_allocate_ctor)(void *, void ***);
typedef void (*ts_allocate_dtor)(void *, void ***);
@@ -142,9 +138,6 @@ TSRM_API MUTEX_T tsrm_mutex_alloc(void);
TSRM_API void tsrm_mutex_free(MUTEX_T mutexp);
TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp);
TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp);
#ifdef HAVE_SIGPROCMASK
TSRM_API int tsrm_sigmask(int how, const sigset_t *set, sigset_t *oldset);
#endif
TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler);
TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler);
+1
View File
@@ -0,0 +1 @@
#undef PTHREADS
+1 -1
View File
@@ -33,7 +33,7 @@ $(makefile_in_files): $(makefile_am_files)
aclocal.m4: configure.in acinclude.m4
aclocal
$(config_h_in): configure.in
$(config_h_in): configure.in acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@rm -f $@
-4
View File
@@ -7,10 +7,6 @@ AC_INIT(TSRM.c)
AM_INIT_AUTOMAKE(TSRM, 1.0, nodefine)
AM_CONFIG_HEADER(tsrm_config.h)
AH_TOP([
#undef PTHREADS
])
sinclude(tsrm.m4)
TSRM_BASIC_CHECKS
-2
View File
@@ -30,8 +30,6 @@ AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_CHECK_HEADERS(stdarg.h)
AC_CHECK_FUNCS(sigprocmask)
])
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2011 The PHP Group |
| Copyright (c) 1997-2010 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2011 The PHP Group |
| Copyright (c) 1997-2010 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+41 -69
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2011 The PHP Group |
| Copyright (c) 1997-2010 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -277,6 +277,18 @@ CWD_API int php_sys_readlink(const char *link, char *target, size_t target_len){
}
/* }}} */
CWD_API int php_sys_stat(const char *path, struct stat *buf) /* {{{ */
{
return php_sys_stat_ex(path, buf, 0);
}
/* }}} */
CWD_API int php_sys_lstat(const char *path, struct stat *buf) /* {{{ */
{
return php_sys_stat_ex(path, buf, 1);
}
/* }}} */
CWD_API int php_sys_stat_ex(const char *path, struct stat *buf, int lstat) /* {{{ */
{
WIN32_FILE_ATTRIBUTE_DATA data;
@@ -497,9 +509,6 @@ CWD_API char *virtual_getcwd_ex(size_t *length TSRMLS_DC) /* {{{ */
*length = 1;
retval = (char *) malloc(2);
if (retval == NULL) {
return NULL;
}
retval[0] = DEFAULT_SLASH;
retval[1] = '\0';
return retval;
@@ -512,9 +521,6 @@ CWD_API char *virtual_getcwd_ex(size_t *length TSRMLS_DC) /* {{{ */
*length = state->cwd_length+1;
retval = (char *) malloc(*length+1);
if (retval == NULL) {
return NULL;
}
memcpy(retval, state->cwd, *length);
retval[0] = toupper(retval[0]);
retval[*length-1] = DEFAULT_SLASH;
@@ -617,14 +623,7 @@ CWD_API void realpath_cache_del(const char *path, int path_len TSRMLS_DC) /* {{{
memcmp(path, (*bucket)->path, path_len) == 0) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
/* if the pointers match then only subtract the length of the path */
if(r->path == r->realpath) {
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1;
} else {
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
}
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
free(r);
return;
} else {
@@ -649,10 +648,6 @@ static inline void realpath_cache_add(const char *path, int path_len, const char
realpath_cache_bucket *bucket = malloc(size);
unsigned long n;
if (bucket == NULL) {
return;
}
#ifdef PHP_WIN32
bucket->key = realpath_cache_key(path, path_len TSRMLS_CC);
#else
@@ -699,13 +694,7 @@ static inline realpath_cache_bucket* realpath_cache_find(const char *path, int p
if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
/* if the pointers match then only subtract the length of the path */
if(r->path == r->realpath) {
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1;
} else {
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
}
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
free(r);
} else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
memcmp(path, (*bucket)->path, path_len) == 0) {
@@ -877,9 +866,6 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
}
pbuffer = (REPARSE_DATA_BUFFER *)tsrm_do_alloca(MAXIMUM_REPARSE_DATA_BUFFER_SIZE, use_heap_large);
if (pbuffer == NULL) {
return -1;
}
if(!DeviceIoControl(hLink, FSCTL_GET_REPARSE_POINT, NULL, 0, pbuffer, MAXIMUM_REPARSE_DATA_BUFFER_SIZE, &retlength, NULL)) {
tsrm_free_alloca(pbuffer, use_heap_large);
CloseHandle(hLink);
@@ -966,9 +952,9 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
}
if (!isVolume) {
char * tmp2 = substitutename + substitutename_off;
char * tmp = substitutename + substitutename_off;
for(bufindex = 0; bufindex < (substitutename_len - substitutename_off); bufindex++) {
*(path + bufindex) = *(tmp2 + bufindex);
*(path + bufindex) = *(tmp + bufindex);
}
*(path + bufindex) = 0;
@@ -1080,7 +1066,6 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
}
if (is_dir && !directory) {
/* not a directory */
tsrm_free_alloca(tmp, use_heap);
return -1;
}
}
@@ -1132,7 +1117,7 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
/* Resolve path relatively to state and put the real path into state */
/* returns 0 for ok, 1 for error */
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath TSRMLS_DC) /* {{{ */
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath) /* {{{ */
{
int path_length = strlen(path);
char resolved_path[MAXPATHLEN];
@@ -1142,6 +1127,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
int ret;
int add_slash;
void *tmp;
TSRMLS_FETCH();
if (path_length == 0 || path_length >= MAXPATHLEN-1) {
#ifdef TSRM_WIN32
@@ -1337,7 +1323,7 @@ verify:
CWD_API int virtual_chdir(const char *path TSRMLS_DC) /* {{{ */
{
return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok, CWD_REALPATH TSRMLS_CC)?-1:0;
return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok, CWD_REALPATH)?-1:0;
}
/* }}} */
@@ -1384,10 +1370,6 @@ CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC) /* {
/* realpath("") returns CWD */
if (!*path) {
new_state.cwd = (char*)malloc(1);
if (new_state.cwd == NULL) {
retval = NULL;
goto end;
}
new_state.cwd[0] = '\0';
new_state.cwd_length = 0;
if (VCWD_GETCWD(cwd, MAXPATHLEN)) {
@@ -1397,15 +1379,11 @@ CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC) /* {
CWD_STATE_COPY(&new_state, &CWDG(cwd));
} else {
new_state.cwd = (char*)malloc(1);
if (new_state.cwd == NULL) {
retval = NULL;
goto end;
}
new_state.cwd[0] = '\0';
new_state.cwd_length = 0;
}
if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)==0) {
if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)==0) {
int len = new_state.cwd_length>MAXPATHLEN-1?MAXPATHLEN-1:new_state.cwd_length;
memcpy(real_path, new_state.cwd, len);
@@ -1416,7 +1394,7 @@ CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC) /* {
}
CWD_STATE_FREE(&new_state);
end:
return retval;
}
/* }}} */
@@ -1427,7 +1405,7 @@ CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_f
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
retval = virtual_file_ex(&new_state, path, verify_path, CWD_FILEPATH TSRMLS_CC);
retval = virtual_file_ex(&new_state, path, verify_path, CWD_FILEPATH);
*filepath = new_state.cwd;
@@ -1452,7 +1430,7 @@ CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC) /* {{{
}
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH)) {
CWD_STATE_FREE(&new_state);
return NULL;
}
@@ -1470,13 +1448,13 @@ CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC) /* {{{ */
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
#if defined(TSRM_WIN32)
ret = tsrm_win32_access(new_state.cwd, mode TSRMLS_CC);
ret = tsrm_win32_access(new_state.cwd, mode);
#else
ret = access(new_state.cwd, mode);
#endif
@@ -1543,7 +1521,7 @@ CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC) /
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1566,7 +1544,7 @@ CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC) /* {{{ */
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1585,7 +1563,7 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int li
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1612,7 +1590,7 @@ CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...) /* {{{ */
int f;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1640,7 +1618,7 @@ CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC) /* {{{ */
int f;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1659,14 +1637,14 @@ CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC) /* {{{ */
int retval;
CWD_STATE_COPY(&old_state, &CWDG(cwd));
if (virtual_file_ex(&old_state, oldname, NULL, CWD_EXPAND TSRMLS_CC)) {
if (virtual_file_ex(&old_state, oldname, NULL, CWD_EXPAND)) {
CWD_STATE_FREE(&old_state);
return -1;
}
oldname = old_state.cwd;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, newname, NULL, CWD_EXPAND TSRMLS_CC)) {
if (virtual_file_ex(&new_state, newname, NULL, CWD_EXPAND)) {
CWD_STATE_FREE(&old_state);
CWD_STATE_FREE(&new_state);
return -1;
@@ -1695,7 +1673,7 @@ CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ */
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1713,7 +1691,7 @@ CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ *
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1731,7 +1709,7 @@ CWD_API int virtual_unlink(const char *path TSRMLS_DC) /* {{{ */
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1749,7 +1727,7 @@ CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC) /* {{{ */
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, pathname, NULL, CWD_FILEPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, pathname, NULL, CWD_FILEPATH)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1770,7 +1748,7 @@ CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC) /* {{{ */
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, pathname, NULL, CWD_EXPAND TSRMLS_CC)) {
if (virtual_file_ex(&new_state, pathname, NULL, CWD_EXPAND)) {
CWD_STATE_FREE(&new_state);
return -1;
}
@@ -1792,7 +1770,7 @@ CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC) /* {{{ */
DIR *retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH)) {
CWD_STATE_FREE(&new_state);
return NULL;
}
@@ -1807,7 +1785,7 @@ CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC) /* {{{ */
#ifdef TSRM_WIN32
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC) /* {{{ */
{
return popen_ex(command, type, CWDG(cwd).cwd, NULL TSRMLS_CC);
return popen_ex(command, type, CWDG(cwd).cwd, NULL);
}
/* }}} */
#elif defined(NETWARE)
@@ -1909,9 +1887,6 @@ CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC) /* {{{
/* realpath("") returns CWD */
if (!*path) {
new_state.cwd = (char*)malloc(1);
if (new_state.cwd == NULL) {
return NULL;
}
new_state.cwd[0] = '\0';
new_state.cwd_length = 0;
if (VCWD_GETCWD(cwd, MAXPATHLEN)) {
@@ -1923,14 +1898,11 @@ CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC) /* {{{
new_state.cwd_length = strlen(cwd);
} else {
new_state.cwd = (char*)malloc(1);
if (new_state.cwd == NULL) {
return NULL;
}
new_state.cwd[0] = '\0';
new_state.cwd_length = 0;
}
if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) {
free(new_state.cwd);
return NULL;
}
+6 -6
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2011 The PHP Group |
| Copyright (c) 1997-2010 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -131,8 +131,8 @@ typedef unsigned short mode_t;
#ifdef TSRM_WIN32
CWD_API int php_sys_stat_ex(const char *path, struct stat *buf, int lstat);
# define php_sys_stat(path, buf) php_sys_stat_ex(path, buf, 0)
# define php_sys_lstat(path, buf) php_sys_stat_ex(path, buf, 1)
CWD_API int php_sys_stat(const char *path, struct stat *buf);
CWD_API int php_sys_lstat(const char *path, struct stat *buf);
CWD_API int php_sys_readlink(const char *link, char *target, size_t target_len);
#else
# define php_sys_stat stat
@@ -201,7 +201,7 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int li
#define CWD_FILEPATH 1 /* resolve symlinks if file is exist otherwise expand */
#define CWD_REALPATH 2 /* call realpath(), resolve symlinks. File must exist */
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath TSRMLS_DC);
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC);
@@ -267,7 +267,7 @@ CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D);
#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)
#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)
#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)
# define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
#define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
#define VCWD_MKDIR(pathname, mode) virtual_mkdir(pathname, mode TSRMLS_CC)
#define VCWD_RMDIR(pathname) virtual_rmdir(pathname TSRMLS_CC)
@@ -310,7 +310,7 @@ CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D);
#define VCWD_OPENDIR(pathname) opendir(pathname)
#define VCWD_POPEN(command, type) popen(command, type)
#if defined(TSRM_WIN32)
#define VCWD_ACCESS(pathname, mode) tsrm_win32_access(pathname, mode TSRMLS_CC)
#define VCWD_ACCESS(pathname, mode) tsrm_win32_access(pathname, mode)
#else
#define VCWD_ACCESS(pathname, mode) access(pathname, mode)
#endif
+8 -10
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2011 The PHP Group |
| Copyright (c) 1997-2010 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -190,7 +190,7 @@ Finished:
return NULL;
}
TSRM_API int tsrm_win32_access(const char *pathname, int mode TSRMLS_DC)
TSRM_API int tsrm_win32_access(const char *pathname, int mode)
{
time_t t;
HANDLE thread_token;
@@ -208,6 +208,8 @@ TSRM_API int tsrm_win32_access(const char *pathname, int mode TSRMLS_DC)
realpath_cache_bucket * bucket = NULL;
char * real_path = NULL;
TSRMLS_FETCH();
if (mode == 1 /*X_OK*/) {
DWORD type;
return GetBinaryType(pathname, &type) ? 0 : -1;
@@ -446,12 +448,10 @@ static HANDLE dupHandle(HANDLE fh, BOOL inherit) {
TSRM_API FILE *popen(const char *command, const char *type)
{
TSRMLS_FETCH();
return popen_ex(command, type, NULL, NULL TSRMLS_CC);
return popen_ex(command, type, NULL, NULL);
}
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env TSRMLS_DC)
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env)
{
FILE *stream = NULL;
int fno, type_len = strlen(type), read, mode;
@@ -469,6 +469,8 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
HANDLE token_user = NULL;
BOOL asuser = TRUE;
TSRMLS_FETCH();
if (!type) {
return NULL;
}
@@ -530,10 +532,6 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
}
cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /c ")+2);
if (!cmd) {
return NULL;
}
sprintf(cmd, "%s /c \"%s\"", TWG(comspec), command);
if (asuser) {
res = CreateProcessAsUser(token_user, NULL, cmd, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process);
+3 -3
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2011 The PHP Group |
| Copyright (c) 1997-2010 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -95,10 +95,10 @@ char * tsrm_win32_get_path_sid_key(const char *pathname TSRMLS_DC);
TSRM_API void tsrm_win32_startup(void);
TSRM_API void tsrm_win32_shutdown(void);
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env TSRMLS_DC);
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env);
TSRM_API FILE *popen(const char *command, const char *type);
TSRM_API int pclose(FILE *stream);
TSRM_API int tsrm_win32_access(const char *pathname, int mode TSRMLS_DC);
TSRM_API int tsrm_win32_access(const char *pathname, int mode);
TSRM_API int win32_utime(const char *filename, struct utimbuf *buf);
TSRM_API int shmget(int key, int size, int flags);
+578 -375
View File
File diff suppressed because it is too large. Load diff
+3 -187
View File
@@ -1,207 +1,23 @@
$Id$
UPGRADE NOTES - PHP X.Y
UPGRADE NOTES - PHP 5.3.4
1. Internal API changes
a. virtual_file_ex
b. stat/lstat support
c. readlink support
d. layout of some core ZE structures (zend_op_array, zend_class_entry, ...)
e. Zend\zend_fast_cache.h has been removed
f. streams that enclose private streams
g. leak_variable
h. API Signature changes
i. new TSRM function expand_filepath_with_mode
2. Build system changes
a. Unix build system changes
b. Windows build system changes
========================
1. Internal API changes
========================
a. virtual_file_ex
virtual_file_ex takes now a TSRM context as last parameter:
CWD_API int virtual_file_ex(cwd_state *state, const char *path,
verify_path_func verify_path, int use_realpath TSRLS_DC);
b. stat/lstat support
a. stat/lstat support
lstat is now available on all platforms. On unix-like platform
php_sys_lstat is an alias to lstat (when avaible). On Windows it is now
available using php_sys_lstat. php_sys_stat and php_sys_lstat usage is recommended
instead of calling lstat directly, to ensure portability.
c. readlink support
b. readlink support
readlink is now available on all platforms. On unix-like platform
php_sys_readlink is an alias to readlink (when avaible). On Windows it is now
available using php_sys_readlink. php_sys_readlink usage is recommended
instead of calling readlink directly, to ensure portability.
d. layout of some core ZE structures (zend_op_array, zend_class_entry, ...)
. zend_function.pass_rest_by_reference is replaced by
ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags
. zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE
in zend_function.fn_flags
. zend_arg_info.required_num_args removed. it was needed only for internal
functions. Now the first arg_info for internal function (which has special
meaning) is represented by zend_internal_function_info structure.
. zend_op_array.size, size_var, size_literal, current_brk_cont,
backpatch_count moved into CG(context), because they are used only during
compilation.
. zend_op_array.start_op is moved into EG(start_op), because it's used
only for 'interactive' execution of single top-level op-array.
. zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in
zend_op_array.fn_flags.
. op_array.vars array is trimmed (reallocated) during pass_two.
. zend_class_entry.constants_updated is replaced by
ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags
. the size of zend_class_entry is reduced by sharing the same memory space
by different information for internal and user classes.
See zend_class_inttry.info union.
e. Zend\zend_fast_cache.h
It should not have been used anymore since php5, but now this header has
been removed. The following macros are not available anymore:
ZEND_FAST_ALLOC(p, type, fc_type)
ZEND_FAST_FREE(p, fc_type)
ZEND_FAST_ALLOC_REL(p, type, fc_type)
ZEND_FAST_FREE_REL(p, fc_type)
Use emalloc, emalloc_rel, efree or efree_rel instead.
f. Streams that enclose private streams
Some streams, like the temp:// stream, may enclose private streams. If the
outer stream leaks due to a programming error or is not exposed through a
zval (and therefore is not deleted when all the zvals are gone), it will
be destroyed on shutdown.
The problem is that the outer usually wants itself to close the inner stream,
so that it may do any other shutdown action that requires the inner stream to
be live (e.g. commit data to it). If the outer stream is exposed through a
zval and the inner one isn't, this is not a problem because the outer stream
will be freed when the zval is destroyed, which happens before the resources
are destroyed on shutdown.
On resource list shutdown, the cleanup happens in reverse order of resource
creation, so if the inner stream was created in the opener of the outer stream,
it will be destroyed first.
The following functions were added to the streams API to force a predictable
destruction order:
PHPAPI php_stream *php_stream_encloses(php_stream *enclosing, php_stream *enclosed);
#define php_stream_free_enclosed(stream_enclosed, close_options)
PHPAPI int _php_stream_free_enclosed(php_stream *stream_enclosed, int close_options TSRMLS_DC);
Additionally, the following member was added to php_stream:
struct _php_stream *enclosing_stream;
and the following macro was added:
#define PHP_STREAM_FREE_IGNORE_ENCLOSING 32
The function php_stream_encloses declares the first stream encloses the second.
This has the effect that, when the inner stream is closed from a resource
destructor it will abort and try to free its enclosing stream instead.
To prevent this from happening when the inner stream is freed from the outer
stream, the macro php_stream_free_enclosed should be used instead of
php_stream_free/php_stream_close/php_stream_pclose, or the flag
PHP_STREAM_FREE_IGNORE_ENCLOSING should be directly passed to php_stream_free.
The outer stream cannot abstain, in its close callback, from closing the inner
stream or clear the enclosing_stream pointer in its enclosed stream by calling
php_stream_encloses with the 2nd argument NULL. If this is not done, there will
be problems, so observe this requirement when using php_stream_encloses.
g. leak_variable
The function leak_variable(variable [, leak_data]) was added. It is only
available on debug builds. It increments the refcount of a zval or, if the
second argument is true and the variable is either an object or a resource
it increments the refcounts of those objects instead.
h. API Signature changes
. zend_list_insert
ZEND_API int zend_list_insert(void *ptr, int type TSRMLS_DC);
call: zend_list_insert(a, SOMETYPE TSRMLS_CC);
NB: If zend_list_insert is used to register a resource,
ZEND_REGISTER_RESOURCE could be used instead.
. php_le_stream_context(TSRMLS_C)
PHPAPI php_stream_context *php_stream_context_alloc(TSRMLS_D)
call: context = php_stream_context_alloc(TSRMLS_C);
. php_stream_context_alloc
PHPAPI php_stream_context *php_stream_context_alloc(TSRMLS_D);
call: context = php_stream_context_alloc(TSRMLS_C);
. sapi_get_request_time(TSRMLS_D);
SAPI_API double sapi_get_request_time(TSRMLS_D);
. sapi_register_default_post_reader
SAPI_API int sapi_register_default_post_reader(void (*default_post_reader)(TSRMLS_D) TSRMLS_DC);
. sapi_register_treat_data
SAPI_API int sapi_register_treat_data(void (*treat_data)(int arg, char *str, zval *destArray TSRMLS_DC) TSRMLS_DC);
. sapi_register_input_filter
SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC), unsigned int (*input_filter_init)(TSRMLS_D) TSRMLS_DC);
. tsrm_win32_access
TSRM_API int tsrm_win32_access(const char *pathname, int mode TSRMLS_DC);
. popen_ex (win32)
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env TSRMLS_DC);
. php_get_current_user
PHPAPI php_get_current_user(TSRMLS_D)
Call: char *user = php_get_current_user(TSRMLS_C);
. php_idate
PHPAPI php_idate(char format, time_t ts, int localtime TSRMLS_DC)
Call: int ret = php_idate(format, ts, localtime TSRMLS_CC)
. php_escape_html_entities
(size_t parameters were ints, previous "quote_style" (now flags) has expanded meaning)
PHPAPI char *php_escape_html_entities(unsigned char *old, size_t oldlen, size_t *newlen, int all, int flags, char *hint_charset TSRMLS_DC);
. php_escape_html_entities_ex
PHPAPI char *php_escape_html_entities_ex(unsigned char *old, size_t oldlen, size_t *newlen, int all, int flags, char *hint_charset, zend_bool double_encode TSRMLS_DC);
. php_unescape_html_entities
PHPAPI char *php_unescape_html_entities(unsigned char *old, size_t oldlen, size_t *newlen, int all, int flags, char *hint_charset TSRMLS_DC);
i.
PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC);
expand_filepath_with_mode lets define how realpath will behave, using one of the existing mode: CWD_EXPAND , CWD_FILEPATH or CWD_REALPATH.
========================
2. Build system changes
========================
a. Unix build system changes
- Changes in SAPI module build:
. When adding new binary SAPI (executable, like CLI/CGI/FPM) use CLI config.m4 and Makefile.frag files as templates and replace CLI/cli with your SAPI name.
- New macros:
. PHP_INIT_DTRACE(providerdesc, header-file, sources [, module])
b. Windows build system changes
-
+1 -1
View File
@@ -17,7 +17,7 @@ libZend_la_SOURCES=\
zend_objects_API.c zend_ts_hash.c zend_stream.c \
zend_default_classes.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c \
zend_strtod.c zend_closures.c zend_float.c zend_string.c zend_signal.c
zend_strtod.c zend_closures.c zend_float.c
libZend_la_LDFLAGS =
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
+4 -8
View File
@@ -243,10 +243,6 @@ SOURCE=.\zend_stream.c
# End Source File
# Begin Source File
SOURCE=.\zend_string.c
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.c
# End Source File
# Begin Source File
@@ -319,6 +315,10 @@ SOURCE=.\zend_extensions.h
# End Source File
# Begin Source File
SOURCE=.\zend_fast_cache.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals.h
# End Source File
# Begin Source File
@@ -411,10 +411,6 @@ SOURCE=.\zend_stream.h
# End Source File
# Begin Source File
SOURCE=.\zend_string.h
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.h
# End Source File
# Begin Source File
+14 -21
View File
@@ -176,6 +176,13 @@ AC_ARG_ENABLE(inline-optimization,
ZEND_INLINE_OPTIMIZATION=yes
])
AC_ARG_ENABLE(zend-multibyte,
[ --enable-zend-multibyte Compile with zend multibyte support], [
ZEND_MULTIBYTE=$enableval
],[
ZEND_MULTIBYTE=no
])
AC_MSG_CHECKING([virtual machine dispatch method])
AC_MSG_RESULT($PHP_ZEND_VM)
@@ -188,6 +195,9 @@ AC_MSG_RESULT($ZEND_INLINE_OPTIMIZATION)
AC_MSG_CHECKING(whether to enable Zend debugging)
AC_MSG_RESULT($ZEND_DEBUG)
AC_MSG_CHECKING(whether to enable Zend multibyte)
AC_MSG_RESULT($ZEND_MULTIBYTE)
case $PHP_ZEND_VM in
SWITCH)
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_SWITCH,[virtual machine dispatch method])
@@ -222,6 +232,10 @@ if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
LIBZEND_CPLUSPLUS_CHECKS
fi
if test "$ZEND_MULTIBYTE" = "yes"; then
AC_DEFINE(ZEND_MULTIBYTE, 1, [ ])
fi
changequote({,})
if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
INLINE_CFLAGS=`echo $ac_n "$CFLAGS $ac_c" | sed s/-O[0-9s]*//`
@@ -392,22 +406,8 @@ int main()
AC_CHECK_FUNCS(mremap)
AC_CHECK_FUNC(sigaction, [
ZEND_SIGNALS=yes
AC_DEFINE(ZEND_SIGNALS, 1, [Use zend signal handling])
AC_DEFINE(HAVE_SIGACTION, 1, [Whether sigaction() is available])
], [
ZEND_SIGNALS=no
])
if test "$ZEND_SIGNALS" = "yes"; then
CFLAGS="$CFLAGS -DZEND_SIGNALS"
fi
AC_MSG_CHECKING(whether to enable zend signal handling)
AC_MSG_RESULT($ZEND_SIGNALS)
])
AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
@@ -419,11 +419,4 @@ if test -r "/dev/urandom" && test -c "/dev/urandom"; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
AC_MSG_CHECKING(whether /dev/arandom exists)
if test -r "/dev/arandom" && test -c "/dev/arandom"; then
AC_DEFINE([HAVE_DEV_ARANDOM], 1, [Define if the target system has /dev/arandom device])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
+4 -8
View File
@@ -273,10 +273,6 @@ SOURCE=.\zend_stream.c
# End Source File
# Begin Source File
SOURCE=.\zend_string.c
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.c
# End Source File
# Begin Source File
@@ -349,6 +345,10 @@ SOURCE=.\zend_extensions.h
# End Source File
# Begin Source File
SOURCE=.\zend_fast_cache.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals.h
# End Source File
# Begin Source File
@@ -445,10 +445,6 @@ SOURCE=.\zend_stream.h
# End Source File
# Begin Source File
SOURCE=.\zend_string.h
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.h
# End Source File
# Begin Source File
+127
View File
@@ -0,0 +1,127 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#if defined(__GNUC__) && __GNUC__ >= 4
# define ZEND_API __attribute__ ((visibility("default")))
# define ZEND_DLEXPORT __attribute__ ((visibility("default")))
#else
# define ZEND_API
# define ZEND_DLEXPORT
#endif
#define ZEND_DLIMPORT
@TOP@
#undef uint
#undef ulong
/* Define if you want to enable memory limit support */
#define MEMORY_LIMIT 0
@BOTTOM@
#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef HAVE_IEEEFP_H
# include <ieeefp.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if ZEND_BROKEN_SPRINTF
int zend_sprintf(char *buffer, const char *format, ...);
#else
# define zend_sprintf sprintf
#endif
#include <math.h>
/* To enable the is_nan, is_infinite and is_finite PHP functions */
#ifdef NETWARE
#define HAVE_ISNAN 1
#define HAVE_ISINF 1
#define HAVE_ISFINITE 1
#endif
#ifndef zend_isnan
#ifdef HAVE_ISNAN
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
#else
#define zend_isnan(a) 0
#endif
#endif
#ifdef HAVE_ISINF
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
#define zend_isinf(a) (((a)==INFINITY)?1:0)
#elif defined(HAVE_FPCLASS)
#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
#else
#define zend_isinf(a) 0
#endif
#ifdef HAVE_FINITE
#define zend_finite(a) finite(a)
#elif defined(HAVE_ISFINITE) || defined(isfinite)
#define zend_finite(a) isfinite(a)
#elif defined(fpclassify)
#define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0)
#else
#define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1)
#endif
#endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */
#ifdef NETWARE
#ifdef USE_WINSOCK
#/*This detection against winsock is of no use*/ undef HAVE_SOCKLEN_T
#/*This detection against winsock is of no use*/ undef HAVE_SYS_SOCKET_H
#endif
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: t
* End:
*/
+1 -1
View File
@@ -4,7 +4,7 @@ dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
# we only support certain bison versions
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5"
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
+1
View File
@@ -3,6 +3,7 @@ if (function_exists("date_default_timezone_set")) {
date_default_timezone_set("UTC");
}
date_default_timezone_set('UTC');
function simple() {
$a = 0;
for ($i = 0; $i < 1000000; $i++)
+1 -1
View File
@@ -33,7 +33,7 @@ $(makefile_in_files): $(makefile_am_files)
aclocal.m4: configure.in acinclude.m4
aclocal
$(config_h_in): configure.in
$(config_h_in): configure.in acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@rm -f $@
-99
View File
@@ -11,105 +11,6 @@ AM_PROG_CC_STDC
ZEND_VERSION=$VERSION
AC_ZEND_C_BIGENDIAN
AH_TOP([
#if defined(__GNUC__) && __GNUC__ >= 4
# define ZEND_API __attribute__ ((visibility("default")))
# define ZEND_DLEXPORT __attribute__ ((visibility("default")))
#else
# define ZEND_API
# define ZEND_DLEXPORT
#endif
#define ZEND_DLIMPORT
#undef uint
#undef ulong
/* Define if you want to enable memory limit support */
#define MEMORY_LIMIT 0
])
AH_BOTTOM([
#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef HAVE_IEEEFP_H
# include <ieeefp.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if ZEND_BROKEN_SPRINTF
int zend_sprintf(char *buffer, const char *format, ...);
#else
# define zend_sprintf sprintf
#endif
#include <math.h>
/* To enable the is_nan, is_infinite and is_finite PHP functions */
#ifdef NETWARE
#define HAVE_ISNAN 1
#define HAVE_ISINF 1
#define HAVE_ISFINITE 1
#endif
#ifndef zend_isnan
#ifdef HAVE_ISNAN
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
#else
#define zend_isnan(a) 0
#endif
#endif
#ifdef HAVE_ISINF
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
#define zend_isinf(a) (((a)==INFINITY)?1:0)
#elif defined(HAVE_FPCLASS)
#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
#else
#define zend_isinf(a) 0
#endif
#ifdef HAVE_FINITE
#define zend_finite(a) finite(a)
#elif defined(HAVE_ISFINITE) || defined(isfinite)
#define zend_finite(a) isfinite(a)
#elif defined(fpclassify)
#define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0)
#else
#define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1)
#endif
#endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */
#ifdef NETWARE
#ifdef USE_WINSOCK
#/*This detection against winsock is of no use*/ undef HAVE_SOCKLEN_T
#/*This detection against winsock is of no use*/ undef HAVE_SYS_SOCKET_H
#endif
#endif
])
dnl We want this one before the checks, so the checks can modify CFLAGS.
test -z "$CFLAGS" && auto_cflags=1
-321
View File
@@ -1,321 +0,0 @@
<?php
function hallo() {
}
function simpleucall($n) {
for ($i = 0; $i < $n; $i++)
hallo();
}
function simpleudcall($n) {
for ($i = 0; $i < $n; $i++)
hallo2();
}
function hallo2() {
}
function simpleicall($n) {
for ($i = 0; $i < $n; $i++)
func_num_args();
}
class Foo {
static $a = 0;
public $b = 0;
const TEST = 0;
static function read_static($n) {
for ($i = 0; $i < $n; ++$i) {
$x = self::$a;
}
}
static function write_static($n) {
for ($i = 0; $i < $n; ++$i) {
self::$a = 0;
}
}
static function isset_static($n) {
for ($i = 0; $i < $n; ++$i) {
$x = isset(self::$a);
}
}
static function empty_static($n) {
for ($i = 0; $i < $n; ++$i) {
$x = empty(self::$a);
}
}
static function f() {
}
static function call_static($n) {
for ($i = 0; $i < $n; ++$i) {
self::f();
}
}
function read_prop($n) {
for ($i = 0; $i < $n; ++$i) {
$x = $this->b;
}
}
function write_prop($n) {
for ($i = 0; $i < $n; ++$i) {
$this->b = 0;
}
}
function assign_add_prop($n) {
for ($i = 0; $i < $n; ++$i) {
$this->b += 2;
}
}
function pre_inc_prop($n) {
for ($i = 0; $i < $n; ++$i) {
++$this->b;
}
}
function pre_dec_prop($n) {
for ($i = 0; $i < $n; ++$i) {
--$this->b;
}
}
function post_inc_prop($n) {
for ($i = 0; $i < $n; ++$i) {
$this->b++;
}
}
function post_dec_prop($n) {
for ($i = 0; $i < $n; ++$i) {
$this->b--;
}
}
function isset_prop($n) {
for ($i = 0; $i < $n; ++$i) {
$x = isset($this->b);
}
}
function empty_prop($n) {
for ($i = 0; $i < $n; ++$i) {
$x = empty($this->b);
}
}
function g() {
}
function call($n) {
for ($i = 0; $i < $n; ++$i) {
$this->g();
}
}
function read_const($n) {
for ($i = 0; $i < $n; ++$i) {
$x = $this::TEST;
}
}
}
function read_static($n) {
for ($i = 0; $i < $n; ++$i) {
$x = Foo::$a;
}
}
function write_static($n) {
for ($i = 0; $i < $n; ++$i) {
Foo::$a = 0;
}
}
function isset_static($n) {
for ($i = 0; $i < $n; ++$i) {
$x = isset(Foo::$a);
}
}
function empty_static($n) {
for ($i = 0; $i < $n; ++$i) {
$x = empty(Foo::$a);
}
}
function call_static($n) {
for ($i = 0; $i < $n; ++$i) {
Foo::f();
}
}
function create_object($n) {
for ($i = 0; $i < $n; ++$i) {
$x = new Foo();
}
}
define('TEST', null);
function read_const($n) {
for ($i = 0; $i < $n; ++$i) {
$x = TEST;
}
}
function read_auto_global($n) {
for ($i = 0; $i < $n; ++$i) {
$x = $_GET;
}
}
$g_var = 0;
function read_global_var($n) {
for ($i = 0; $i < $n; ++$i) {
$x = $GLOBALS['g_var'];
}
}
function read_hash($n) {
$hash = array('test' => 0);
for ($i = 0; $i < $n; ++$i) {
$x = $hash['test'];
}
}
function read_str_offset($n) {
$str = "test";
for ($i = 0; $i < $n; ++$i) {
$x = $str[1];
}
}
/*****/
function empty_loop($n) {
for ($i = 0; $i < $n; ++$i) {
}
}
function getmicrotime()
{
$t = gettimeofday();
return ($t['sec'] + $t['usec'] / 1000000);
}
function start_test()
{
ob_start();
return getmicrotime();
}
function end_test($start, $name, $overhead = null)
{
global $total;
global $last_time;
$end = getmicrotime();
ob_end_clean();
$last_time = $end-$start;
$total += $last_time;
$num = number_format($last_time,3);
$pad = str_repeat(" ", 24-strlen($name)-strlen($num));
if (is_null($overhead)) {
echo $name.$pad.$num."\n";
} else {
$num2 = number_format($last_time - $overhead,3);
echo $name.$pad.$num." ".$num2."\n";
}
ob_start();
return getmicrotime();
}
function total()
{
global $total;
$pad = str_repeat("-", 24);
echo $pad."\n";
$num = number_format($total,3);
$pad = str_repeat(" ", 24-strlen("Total")-strlen($num));
echo "Total".$pad.$num."\n";
}
const N = 5000000;
$t0 = $t = start_test();
empty_loop(N);
$t = end_test($t, 'empty_loop');
$overhead = $last_time;
simpleucall(N);
$t = end_test($t, 'func()', $overhead);
simpleudcall(N);
$t = end_test($t, 'undef_func()', $overhead);
simpleicall(N);
$t = end_test($t, 'int_func()', $overhead);
Foo::read_static(N);
$t = end_test($t, '$x = self::$x', $overhead);
Foo::write_static(N);
$t = end_test($t, 'self::$x = 0', $overhead);
Foo::isset_static(N);
$t = end_test($t, 'isset(self::$x)', $overhead);
Foo::empty_static(N);
$t = end_test($t, 'empty(self::$x)', $overhead);
read_static(N);
$t = end_test($t, '$x = Foo::$x', $overhead);
write_static(N);
$t = end_test($t, 'Foo::$x = 0', $overhead);
isset_static(N);
$t = end_test($t, 'isset(Foo::$x)', $overhead);
empty_static(N);
$t = end_test($t, 'empty(Foo::$x)', $overhead);
Foo::call_static(N);
$t = end_test($t, 'self::f()', $overhead);
call_static(N);
$t = end_test($t, 'Foo::f()', $overhead);
$x = new Foo();
$x->read_prop(N);
$t = end_test($t, '$x = $this->x', $overhead);
$x->write_prop(N);
$t = end_test($t, '$this->x = 0', $overhead);
$x->assign_add_prop(N);
$t = end_test($t, '$this->x += 2', $overhead);
$x->pre_inc_prop(N);
$t = end_test($t, '++$this->x', $overhead);
$x->pre_dec_prop(N);
$t = end_test($t, '--$this->x', $overhead);
$x->post_inc_prop(N);
$t = end_test($t, '$this->x++', $overhead);
$x->post_dec_prop(N);
$t = end_test($t, '$this->x--', $overhead);
$x->isset_prop(N);
$t = end_test($t, 'isset($this->x)', $overhead);
$x->empty_prop(N);
$t = end_test($t, 'empty($this->x)', $overhead);
$x->call(N);
$t = end_test($t, '$this->f()', $overhead);
$x->read_const(N);
$t = end_test($t, '$x = Foo::TEST', $overhead);
create_object(N);
$t = end_test($t, 'new Foo()', $overhead);
read_const(N);
$t = end_test($t, '$x = TEST', $overhead);
read_auto_global(N);
$t = end_test($t, '$x = $_GET', $overhead);
read_global_var(N);
$t = end_test($t, '$x = $GLOBALS[\'v\']', $overhead);
read_hash(N);
$t = end_test($t, '$x = $hash[\'v\']', $overhead);
read_str_offset(N);
$t = end_test($t, '$x = $str[0]', $overhead);
total($t0, "Total");
+1 -1
View File
@@ -21,5 +21,5 @@ print "ok\n";
Notice: Trying to get property of non-object in %s on line %d
ok
Warning: Creating default object from empty value in %s on line %d
Strict Standards: Creating default object from empty value in %s on line %d
ok
+2 -2
View File
@@ -26,6 +26,6 @@ Notice: Undefined variable: arr in %s on line %d
Notice: Trying to get property of non-object in %s on line %d
Warning: Creating default object from empty value in %s on line %d
Strict Standards: Creating default object from empty value in %s on line %d
Warning: Creating default object from empty value in %s on line %d
Strict Standards: Creating default object from empty value in %s on line %d
+1 -1
View File
@@ -12,4 +12,4 @@ foo(123);
--EXPECTF--
3
Catchable fatal error: Argument 1 passed to foo() must be of the type array, integer given, called in %sarray_type_hint_001.php on line 7 and defined in %sarray_type_hint_001.php on line 2
Catchable fatal error: Argument 1 passed to foo() must be an array, integer given, called in %sarray_type_hint_001.php on line 7 and defined in %sarray_type_hint_001.php on line 2
+2
View File
@@ -23,6 +23,7 @@ echo isset($simpleString[0])?"ok\n":"bug\n";
echo isset($simpleString["0"])?"ok\n":"bug\n";
echo isset($simpleString["16"])?"ok\n":"bug\n";
echo isset($simpleString["17"])?"bug\n":"ok\n";
echo isset($simpleString["wrong"][0])?"bug\n":"ok\n";
echo $simpleString->wrong === null?"ok\n":"bug\n";
echo $simpleString["wrong"] === "B"?"ok\n":"bug\n";
echo $simpleString["0"] === "B"?"ok\n":"bug\n";
@@ -43,6 +44,7 @@ ok
ok
ok
ok
ok
Notice: Trying to get property of non-object in %sbug31098.php on line %d
ok
+1
View File
@@ -4,6 +4,7 @@ Bug #35655 (whitespace following end of heredoc is lost)
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
--FILE--
-10
View File
@@ -63,18 +63,10 @@ print "\nDone\n";
?>
--EXPECTF--
Notice: Uninitialized string offset: %i in %s on line 6
Notice: Uninitialized string offset: 0 in %s on line 10
Notice: Uninitialized string offset: 0 in %s on line 12
Notice: Uninitialized string offset: %i in %s on line 14
Notice: Uninitialized string offset: %i in %s on line 16
Notice: Uninitialized string offset: 0 in %s on line 18
Notice: Uninitialized string offset: 4 in %s on line 28
Notice: Uninitialized string offset: 4 in %s on line 34
@@ -85,8 +77,6 @@ Notice: Uninitialized string offset: 4 in %s on line 42
Notice: Uninitialized string offset: 4 in %s on line 46
Notice: Uninitialized string offset: 12 in %s on line 50
Notice: Uninitialized string offset: 12 in %s on line 52
b
Done
-2
View File
@@ -1,7 +1,5 @@
--TEST--
Bug #39304 (Segmentation fault with list unpacking of string offset)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.4.0', '>=')) die('skip ZendEngine 2.4 needed'); ?>
--FILE--
<?php
$s = "";
-18
View File
@@ -1,18 +0,0 @@
--TEST--
Bug #39304 (Segmentation fault with list unpacking of string offset)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.4.0', '<')) die('skip ZendEngine 2.4 needed'); ?>
--FILE--
<?php
$s = "";
list($a, $b) = $s[0];
var_dump($a,$b);
?>
--EXPECTF--
Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line 3
Notice: Uninitialized string offset: 1 in %sbug39304_2_4.php on line 3
Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line 3
string(0) ""
string(0) ""
+1
View File
@@ -4,6 +4,7 @@ Bug #42767 (highlight_string() truncates trailing comments)
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
--FILE--
+1 -1
View File
@@ -20,5 +20,5 @@ var_dump( ArrayProperty::$array );
--EXPECT--
array(1) {
[1]=>
int(42)
int(23)
}
+1 -1
View File
@@ -20,7 +20,7 @@ var_dump(
--EXPECTF--
Parse error: syntax error, unexpected '}' in %s(%d) : runtime-created function on line 1
Parse error: syntax error, unexpected end of file in %s(%d) : runtime-created function on line 1
Parse error: syntax error, unexpected $end in %s(%d) : runtime-created function on line 1
bool(false)
int(2)
bool(false)
-48
View File
@@ -1,48 +0,0 @@
--TEST--
Bug #50816 (Using class constants in array definition fails)
--FILE--
<?php
define("ONE", 1);
define("TWO", 1);
class Foo {
const ONE = 1;
const TWO = 1;
public static $mapWithConst = array(self::ONE => 'one', self::TWO => 'two',);
public static $mapWithConst1 = array(1 => 'one', self::TWO => 'two',);
public static $mapWithConst2 = array(self::ONE => 'one', 1 => 'two',);
public static $mapWithoutConst = array(1 => 'one', 1 => 'two',);
}
$mapWithConst = array(1 => 'one', 1 => 'two',);
$mapWithoutConst = array(Foo::ONE => 'one', Foo::TWO => 'two',);
$mapWithoutConst0 = array(1 => 'one', 1 => 'two',);
$mapWithoutConst1 = array(ONE => 'one', 1 => 'two',);
$mapWithoutConst2 = array(1 => 'one', TWO => 'two',);
$mapWithoutConst3 = array(ONE => 'one', TWO => 'two',);
var_dump(Foo::$mapWithConst[1]);
var_dump(Foo::$mapWithConst1[1]);
var_dump(Foo::$mapWithConst2[1]);
var_dump(Foo::$mapWithoutConst[1]);
var_dump($mapWithConst[1]);
var_dump($mapWithoutConst[1]);
var_dump($mapWithoutConst0[1]);
var_dump($mapWithoutConst1[1]);
var_dump($mapWithoutConst2[1]);
var_dump($mapWithoutConst3[1]);
--EXPECT--
string(3) "two"
string(3) "two"
string(3) "two"
string(3) "two"
string(3) "two"
string(3) "two"
string(3) "two"
string(3) "two"
string(3) "two"
string(3) "two"
-18
View File
@@ -1,18 +0,0 @@
--TEST--
Bug #51421 (Abstract __construct constructor argument list not enforced)
--FILE--
<?php
class ExampleClass {}
abstract class TestInterface {
abstract public function __construct(ExampleClass $var);
}
class Test extends TestInterface {
public function __construct() {}
}
?>
--EXPECTF--
Fatal error: Declaration of Test::__construct() must be compatible with that of TestInterface::__construct() in %s on line %d
+12 -37
View File
@@ -13,63 +13,38 @@ foo()->a->b++;
foo()->a += 2;
foo()->a->b += 2;
foo()[0] = 1;
foo()[0][0] = 2;
foo()[0]++;
foo()[0][0]++;
foo()[0] += 2;
foo()[0][0] += 2;
//foo()[0] = 1;
//foo()[0][0] = 2;
//foo()[0]++;
//foo()[0][0]++;
//foo()[0] += 2;
//foo()[0][0] += 2;
var_dump(foo());
?>
--EXPECTF--
Notice: Undefined variable: x in %sbug52041.php on line 3
Warning: Creating default object from empty value in %sbug52041.php on line 6
Strict Standards: Creating default object from empty value in %sbug52041.php on line 6
Notice: Undefined variable: x in %sbug52041.php on line 3
Warning: Creating default object from empty value in %sbug52041.php on line 7
Strict Standards: Creating default object from empty value in %sbug52041.php on line 7
Notice: Undefined variable: x in %sbug52041.php on line 3
Warning: Creating default object from empty value in %sbug52041.php on line 8
Strict Standards: Creating default object from empty value in %sbug52041.php on line 8
Notice: Undefined variable: x in %sbug52041.php on line 3
Warning: Creating default object from empty value in %sbug52041.php on line 9
Strict Standards: Creating default object from empty value in %sbug52041.php on line 9
Notice: Undefined variable: x in %sbug52041.php on line 3
Warning: Creating default object from empty value in %sbug52041.php on line 10
Strict Standards: Creating default object from empty value in %sbug52041.php on line 10
Notice: Undefined variable: x in %sbug52041.php on line 3
Warning: Creating default object from empty value in %sbug52041.php on line 11
Notice: Undefined variable: x in %sbug52041.php on line 3
Notice: Undefined variable: x in %sbug52041.php on line 3
Notice: Undefined variable: x in %stests/bug52041.php on line 3
Notice: Undefined offset: 0 in %sbug52041.php on line 15
Notice: Undefined variable: x in %sbug52041.php on line 3
Notice: Undefined offset: 0 in %sbug52041.php on line 16
Notice: Undefined offset: 0 in %sbug52041.php on line 16
Notice: Undefined variable: x in %sbug52041.php on line 3
Notice: Undefined offset: 0 in %sbug52041.php on line 17
Notice: Undefined variable: x in %sbug52041.php on line 3
Notice: Undefined offset: 0 in %sbug52041.php on line 18
Notice: Undefined offset: 0 in %sbug52041.php on line 18
Strict Standards: Creating default object from empty value in %sbug52041.php on line 11
Notice: Undefined variable: x in %sbug52041.php on line 3
NULL
-1
View File
@@ -7,6 +7,5 @@ preg_match('//', '', $data->info);
var_dump($data);
?>
--EXPECTF--
Warning: Attempt to modify property of non-object in %sbug52237.php on line 3
string(4) "test"
-83
View File
@@ -1,83 +0,0 @@
--TEST--
Bug #52614 (Memory leak when writing on uninitialized variable returned from method call)
--FILE--
<?php
class foo {
public $a1;
public $a2 = array();
public $a3;
public $o1;
public $o2;
public function f1() {
return $this->a1;
}
public function f2() {
return $this->a2;
}
public function f3() {
$this->a3 = array();
return $this->a3;
}
public function f4() {
return $this->o1;
}
public function f5() {
$this->o2 = new stdClass;
return $this->o2;
}
public function &f6() {
return $this->a1;
}
public function f7(&$x) {
$x = 2;
}
}
$foo = new foo;
$foo->f1()[0] = 1;
var_dump($foo->a1);
$foo->f2()[0] = 1;
var_dump($foo->a2);
$foo->f3()[0] = 1;
var_dump($foo->a3);
$foo->f4()->a = 1;
var_dump($foo->o1);
$foo->f5()->a = 1;
var_dump($foo->o2);
$foo->a1[0] = 1;
$foo->f7($foo->f6()[0]);
var_dump($foo->a1[0]);
$foo->f1()[0]++;
var_dump($foo->a1[0]);
$foo->f6()[0]++;
var_dump($foo->a1[0]);
--EXPECTF--
NULL
array(0) {
}
array(0) {
}
Warning: Creating default object from empty value in %sbug52614.php on line 52
NULL
object(stdClass)#%d (1) {
["a"]=>
int(1)
}
int(2)
int(2)
int(3)
-23
View File
@@ -1,23 +0,0 @@
--TEST--
Bug #52940 (call_user_func_array still allows call-time pass-by-reference)
--FILE--
<?php
function foo($a) {
$a++;
var_dump($a);
}
function bar(&$a) {
$a++;
var_dump($a);
}
$a = 1;
call_user_func_array("foo", array(&$a));
var_dump($a);
call_user_func_array("bar", array(&$a));
var_dump($a);
?>
--EXPECT--
int(2)
int(1)
int(2)
int(2)
-17
View File
@@ -1,17 +0,0 @@
--TEST--
Bug #53347 Segfault accessing static method
--FILE--
<?php class ezcConsoleOutput
{
protected static $color = array( 'gray' => 30 );
public static function isValidFormatCode( $type, $key )
{
return isset( self::${$type}[$key] );
}
}
var_dump( ezcConsoleOutput::isValidFormatCode( 'color', 'gray' ) );
?>
--EXPECT--
bool(true)
-33
View File
@@ -1,33 +0,0 @@
--TEST--
Bug #53511 (Exceptions are lost in case an exception is thrown in catch operator)
--FILE--
<?php
class Foo {
function __destruct() {
throw new Exception("ops 1");
}
}
function test() {
$e = new Foo();
try {
throw new Exception("ops 2");
} catch (Exception $e) {
echo $e->getMessage()."\n";
}
}
test();
echo "bug\n";
--EXPECTF--
Fatal error: Uncaught exception 'Exception' with message 'ops 2' in %sbug53511.php:11
Stack trace:
#0 %sbug53511.php(17): test()
#1 {main}
Next exception 'Exception' with message 'ops 1' in %sbug53511.php:4
Stack trace:
#0 %sbug53511.php(12): Foo->__destruct()
#1 %sbug53511.php(17): test()
#2 {main}
thrown in %sbug53511.php on line 4
-31
View File
@@ -1,31 +0,0 @@
--TEST--
Bug #53629 (memory leak inside highlight_string())
--FILE--
<?php
$str = '
<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}
?>
';
$str2 = '
<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>
';
highlight_string($str, true);
highlight_string($str2, true);
echo "Done\n";
?>
--EXPECT--
Done
-10
View File
@@ -1,10 +0,0 @@
--TEST--
zend_strtod() hangs with 2.2250738585072011e-308
--FILE--
<?php
$d = 2.2250738585072011e-308;
echo "Done\n";
?>
--EXPECTF--
Done
-22
View File
@@ -1,22 +0,0 @@
--TEST--
Bug #53727 (Inconsistent behavior of is_subclass_of with interfaces)
--FILE--
<?php
interface MyInterface {
const TEST_CONSTANT = true;
}
class ParentClass implements MyInterface { }
class ChildClass extends ParentClass { }
echo (is_subclass_of('ChildClass', 'MyInterface') ? 'true' : 'false') . "\n";
echo (defined('ChildClass::TEST_CONSTANT') ? 'true' : 'false') . "\n";
echo (is_subclass_of('ParentClass', 'MyInterface') ? 'true' : 'false') . "\n";
echo (defined('ParentClass::TEST_CONSTANT') ? 'true' : 'false') . "\n";
--EXPECT--
true
true
true
true
-39
View File
@@ -1,39 +0,0 @@
--TEST--
Bug #53748 (Using traits lead to a segmentation fault)
--FILE--
<?php
trait Singleton {
protected static $instances=array();
abstract protected function __construct($config);
public static function getInstance($config) {
if (!isset(self::$instances[$serialize = serialize($config)])) {
self::$instances[$serialize] = new self($config);
}
return self::$instances[$serialize];
}
}
class MyHelloWorld {
use Singleton;
public function __construct($config)
{
var_dump( $config);
}
}
$o= myHelloWorld::getInstance(1);
$o= myHelloWorld::getInstance(1);
$o= myHelloWorld::getInstance(2);
$o= myHelloWorld::getInstance(array(1=>2));
$o= myHelloWorld::getInstance(array(1=>2));
?>
--EXPECTF--
int(1)
int(2)
array(1) {
[1]=>
int(2)
}
-61
View File
@@ -1,61 +0,0 @@
--TEST--
Bug #53958 (Closures can't 'use' shared variables by value and by reference)
--FILE--
<?php
// TEST 1
$a = 1;
$fn1 = function() use ($a) {echo "$a\n"; $a++;};
$fn2 = function() use ($a) {echo "$a\n"; $a++;};
$a = 5;
$fn1(); // 1
$fn2(); // 1
$fn1(); // 1
$fn2(); // 1
// TEST 2
$b = 1;
$fn1 = function() use (&$b) {echo "$b\n"; $b++;};
$fn2 = function() use (&$b) {echo "$b\n"; $b++;};
$b = 5;
$fn1(); // 5
$fn2(); // 6
$fn1(); // 7
$fn2(); // 8
// TEST 3
$c = 1;
$fn1 = function() use (&$c) {echo "$c\n"; $c++;};
$fn2 = function() use ($c) {echo "$c\n"; $c++;};
$c = 5;
$fn1(); // 5
$fn2(); // 1
$fn1(); // 6
$fn2(); // 1
// TEST 4
$d = 1;
$fn1 = function() use ($d) {echo "$d\n"; $d++;};
$fn2 = function() use (&$d) {echo "$d\n"; $d++;};
$d = 5;
$fn1(); // 1
$fn2(); // 5
$fn1(); // 1
$fn2(); // 6
?>
--EXPECT--
1
1
1
1
5
6
7
8
5
1
6
1
1
5
1
6
-11
View File
@@ -1,11 +0,0 @@
--TEST--
Bug #53971 (isset() and empty() produce apparently spurious runtime error)
--FILE--
<?php
$s = "";
var_dump(isset($s[0][0]));
?>
--EXPECT--
bool(false)
-31
View File
@@ -1,31 +0,0 @@
--TEST--
Bug #54013 (ReflectionParam for duplicate parameter contains garbage)
--FILE--
<?php
class a
{
function b($aaaaaaaa, $aaaaaaaa)
{
$params = func_get_args();
}
}
$c = new a;
$c->b('waa?', 'meukee!');
$reflectionClass = new ReflectionClass($c);
$params = $reflectionClass->getMethod('b')->getParameters();
var_dump($params[0], $params[1]);
?>
--EXPECTF--
object(ReflectionParameter)#%d (1) {
["name"]=>
string(8) "aaaaaaaa"
}
object(ReflectionParameter)#%d (1) {
["name"]=>
string(8) "aaaaaaaa"
}
-58
View File
@@ -1,58 +0,0 @@
--TEST--
Bug #54039 (use() of static variables in lambda functions can break staticness)
--FILE--
<?php
function test_1() {
static $v = 0;
++$v;
echo "Outer function increments \$v to $v\n";
$f = function() use($v) {
echo "Inner function reckons \$v is $v\n";
};
return $f;
}
$f = test_1(); $f();
$f = test_1(); $f();
function test_2() {
static $v = 0;
$f = function() use($v) {
echo "Inner function reckons \$v is $v\n";
};
++$v;
echo "Outer function increments \$v to $v\n";
return $f;
}
$f = test_2(); $f();
$f = test_2(); $f();
function test_3() {
static $v = "";
$v .= 'b';
echo "Outer function catenates 'b' onto \$v to give $v\n";
$f = function() use($v) {
echo "Inner function reckons \$v is $v\n";
};
$v .= 'a';
echo "Outer function catenates 'a' onto \$v to give $v\n";
return $f;
}
$f = test_3(); $f();
$f = test_3(); $f();
--EXPECT--
Outer function increments $v to 1
Inner function reckons $v is 1
Outer function increments $v to 2
Inner function reckons $v is 2
Outer function increments $v to 1
Inner function reckons $v is 0
Outer function increments $v to 2
Inner function reckons $v is 1
Outer function catenates 'b' onto $v to give b
Outer function catenates 'a' onto $v to give ba
Inner function reckons $v is b
Outer function catenates 'b' onto $v to give bab
Outer function catenates 'a' onto $v to give baba
Inner function reckons $v is bab
-17
View File
@@ -1,17 +0,0 @@
--TEST--
Bug #54262 (Crash when assigning value to a dimension in a non-array)
--FILE--
<?php
$a = '0';
var_dump(isset($a['b']));
$simpleString = preg_match('//', '', $a->a);
$simpleString["wrong"] = "f";
echo "ok\n";
?>
--EXPECTF--
bool(true)
Warning: Attempt to modify property of non-object in %s/Zend/tests/bug54262.php on line 4
Warning: Cannot use a scalar value as an array in %s/Zend/tests/bug54262.php on line 5
ok
-17
View File
@@ -1,17 +0,0 @@
--TEST--
Bug #54265 (crash when variable gets reassigned in error handler)
--FILE--
<?php
function my_errorhandler($errno,$errormsg) {
global $my_var;
$my_var = 0;
echo "EROOR: $errormsg\n";
}
set_error_handler("my_errorhandler");
$my_var = str_repeat("A",$my_var[0]->errormsg = "xyz");
echo "ok\n";
?>
--EXPECT--
EROOR: Creating default object from empty value
ok
-35
View File
@@ -1,35 +0,0 @@
--TEST--
Bug #54268 (Double free when destroy_zend_class fails)
--INI--
memory_limit=8M
--SKIPIF--
<?php
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
if ($zend_mm_enabled === "0") {
die("skip Zend MM disabled");
}
?>
--FILE--
<?php
class DestructableObject
{
public function __destruct()
{
DestructableObject::__destruct();
}
}
class DestructorCreator
{
public function __destruct()
{
$this->test = new DestructableObject;
}
}
class Test
{
public static $mystatic;
}
$x = new Test();
Test::$mystatic = new DestructorCreator();
--EXPECTF--
Fatal error: Allowed memory size of %s bytes exhausted%s(tried to allocate %s bytes) in %s on line %d
-22
View File
@@ -1,22 +0,0 @@
--TEST--
Bug #54305 (Crash in gc_remove_zval_from_buffer)
--FILE--
<?php
class TestClass {
public function methodWithArgs($a, $b) {
}
}
abstract class AbstractClass {
}
$methodWithArgs = new ReflectionMethod('TestClass', 'methodWithArgs');
echo $methodWithArgs++;
?>
--EXPECTF--
Method [ <user> public method methodWithArgs ] {
@@ %sbug54305.php %d - %d
- Parameters [2] {
Parameter #0 [ <required> $a ]
Parameter #1 [ <required> $b ]
}
}
-39
View File
@@ -1,39 +0,0 @@
--TEST--
Bug #54358 (Closure, use and reference)
--FILE--
<?php
class asserter {
public function call($function) {
}
}
$asserter = new asserter();
$closure = function() use ($asserter, &$function) {
$asserter->call($function = 'md5');
};
$closure();
var_dump($function);
$closure = function() use ($asserter, $function) {
$asserter->call($function);
};
$closure();
var_dump($function);
$closure = function() use ($asserter, $function) {
$asserter->call($function);
};
$closure();
var_dump($function);
?>
--EXPECT--
string(3) "md5"
string(3) "md5"
string(3) "md5"
-24
View File
@@ -1,24 +0,0 @@
--TEST--
Bug #54367 (Use of closure causes problem in ArrayAccess)
--FILE--
<?php
class MyObjet implements ArrayAccess
{
public function offsetSet($offset, $value) { }
public function offsetExists($offset) { }
public function offsetUnset($offset) { }
public function offsetGet ($offset)
{
return function ($var) use ($offset) { // here is the problem
var_dump($offset, $var);
};
}
}
$a = new MyObjet();
echo $a['p']('foo');
?>
--EXPECT--
string(1) "p"
string(3) "foo"
-23
View File
@@ -1,23 +0,0 @@
--TEST--
Bug #54372 (Crash accessing global object itself returned from its __get() handle)
--FILE--
<?php
class test_class
{
public function __get($name)
{
return $this;
}
public function b()
{
echo "ok\n";
}
}
global $test3;
$test3 = new test_class();
$test3->a->b();
?>
--EXPECT--
ok
-15
View File
@@ -1,15 +0,0 @@
--TEST--
Bug #54585 (track_errors causes segfault)
--INI--
track_errors=On
--FILE--
<?php
function testing($source) {
unset($source[$cos]);
}
testing($_GET);
echo "ok\n";
?>
--EXPECTF--
Notice: Undefined variable: cos in %sbug54585.php on line 3
ok
-26
View File
@@ -1,26 +0,0 @@
--TEST--
Bug #54624 (class_alias and type hint)
--FILE--
<?php
class A
{
function foo(A $param) {
}
}
class_alias('A', 'AliasA');
eval('
class B extends A
{
function foo(AliasA $param) {
}
}
');
echo "DONE\n";
?>
--EXPECTF--
DONE
-3
View File
@@ -1,3 +0,0 @@
<?php
namespace b\c {}
namespace b\d {}
-11
View File
@@ -1,11 +0,0 @@
--TEST--
Bug #54804 (__halt_compiler and imported namespaces)
--FILE--
<?php
namespace a;
require __DIR__ . '/bug54804.inc';
echo 'DONE';
__halt_compiler();
?>
--EXPECT--
DONE
-28
View File
@@ -1,28 +0,0 @@
--TEST--
Bug #54910 (Crash when calling call_user_func with unknown function name)
--FILE--
<?php
class A {
public function __call($method, $args) {
if (stripos($method, 'get') === 0) {
return $this->get();
}
die("No such method - '$method'\n");
}
protected function get() {
$class = get_class($this);
$call = array($class, 'noSuchMethod');
if (is_callable($call)) {
call_user_func($call);
}
}
}
class B extends A {}
$input = new B();
echo $input->getEmail();
--EXPECT--
No such method - 'noSuchMethod'
-23
View File
@@ -1,23 +0,0 @@
--TEST--
Bug #55007 (compiler fail after previous fail)
--FILE--
<?php
function __autoload($classname) {
if ('CompileErrorClass'==$classname) eval('class CompileErrorClass { function foo() { $a[] } }');
if ('MyErrorHandler'==$classname) eval('class MyErrorHandler { function __construct() { print "My error handler runs.\n"; } }');
}
function shutdown() {
new MyErrorHandler();
}
register_shutdown_function('shutdown');
new CompileErrorClass();
?>
--EXPECTF--
Fatal error: Cannot use [] for reading in %s(%d) : eval()'d code on line %d
My error handler runs.
-36
View File
@@ -1,36 +0,0 @@
--TEST--
Bug #55086 (Namespace alias does not work inside trait's use block)
--FILE--
<?php
namespace N1 {
trait T1 {
public function hello() { return 'hello from t1'; }
}
trait T2 {
public function hello() { return 'hello from t2'; }
}
}
namespace N2 {
use N1\T1;
use N1\T2;
class A {
use T1, T2 {
T1::hello insteadof T2;
T1::hello as foo;
}
}
$a = new A;
echo $a->hello(), PHP_EOL;
echo $a->foo(), PHP_EOL;
try {
} catch(namespace \Foo $e)
{
}
}
?>
--EXPECT--
hello from t1
hello from t1
-38
View File
@@ -1,38 +0,0 @@
--TEST--
Bug #55135 (Array keys are no longer type casted in unset())
--FILE--
<?php
// This fails.
$array = array(1 => 2);
$a = "1";
unset($array[$a]);
print_r($array);
// Those works.
$array = array(1 => 2);
$a = 1;
unset($array[$a]);
print_r($array);
$array = array(1 => 2);
unset($array[1]);
print_r($array);
$array = array(1 => 2);
$a = 1;
unset($array["1"]);
print_r($array);
?>
--EXPECT--
Array
(
)
Array
(
)
Array
(
)
Array
(
)
-26
View File
@@ -1,26 +0,0 @@
--TEST--
Bug #55137 (Changing trait static method visibility)
--FILE--
<?php
trait A {
protected static function foo() { echo "abc\n"; }
private static function bar() { echo "def\n"; }
}
class B {
use A {
A::foo as public;
A::bar as public baz;
}
}
B::foo();
B::baz();
?>
--EXPECT--
abc
def
-30
View File
@@ -1,30 +0,0 @@
--TEST--
Bug #55156 (ReflectionClass::getDocComment() returns comment even though the class has none)
--FILE--
<?php
/** test */
namespace foo {
function test() { }
$x = new \ReflectionFunction('foo\test');
var_dump($x->getDocComment());
/** test1 */
class bar { }
/** test2 */
class foo extends namespace\bar { }
$x = new \ReflectionClass('foo\bar');
var_dump($x->getDocComment());
$x = new \ReflectionClass('foo\foo');
var_dump($x->getDocComment());
}
?>
--EXPECTF--
bool(false)
string(12) "/** test1 */"
string(12) "/** test2 */"
-33
View File
@@ -1,33 +0,0 @@
--TEST--
Request #55247 (Parser problem with static calls using string method name)
--FILE--
<?php
class Test{
public static function __callStatic($method, $arguments)
{
echo $method . PHP_EOL;
}
public function __call($method, $arguments)
{
echo $method . PHP_EOL;
}
}
$method = 'method';
$test = new Test();
$test->method();
$test->$method();
$test->{'method'}();
Test::method();
Test::$method();
Test::{'method'}();
--EXPECT--
method
method
method
method
method
method
-16
View File
@@ -1,16 +0,0 @@
--TEST--
Bug #55305 (ref lost: 1st ref instantiated in class def, 2nd ref made w/o instantiating)
--FILE--
<?php
class Foo {
var $foo = "test";
}
$f = new Foo();
$f->bar =& $f->foo;
var_dump($f->foo);
var_dump($f->bar);
?>
--EXPECT--
string(4) "test"
string(4) "test"
+1 -5
View File
@@ -1,5 +1,5 @@
--TEST--
Checking if exists interface, trait, abstract and final class
Checking if exists interface, abstract and final class
--FILE--
<?php
@@ -9,16 +9,12 @@ abstract class b { }
final class c { }
trait d {}
var_dump(class_exists('a'));
var_dump(class_exists('b'));
var_dump(class_exists('c'));
var_dump(class_exists('d'));
?>
--EXPECT--
bool(false)
bool(true)
bool(true)
bool(false)
-74
View File
@@ -1,74 +0,0 @@
--TEST--
Closure 005: Lambda inside class, lifetime of $this
--FILE--
<?php
class A {
private $x;
function __construct($x) {
$this->x = $x;
}
function __destruct() {
echo "Destroyed\n";
}
function getIncer($val) {
return function() use ($val) {
$this->x += $val;
};
}
function getPrinter() {
return function() {
echo $this->x."\n";
};
}
function getError() {
return static function() {
echo $this->x."\n";
};
}
function printX() {
echo $this->x."\n";
}
}
$a = new A(3);
$incer = $a->getIncer(2);
$printer = $a->getPrinter();
$error = $a->getError();
$a->printX();
$printer();
$incer();
$a->printX();
$printer();
unset($a);
$incer();
$printer();
unset($incer);
$printer();
unset($printer);
$error();
echo "Done\n";
?>
--EXPECTF--
3
3
5
5
7
7
Destroyed
Fatal error: Using $this when not in object context in %sclosure_005.php on line 28
-38
View File
@@ -1,38 +0,0 @@
--TEST--
Closure 007: Nested lambdas in classes
--FILE--
<?php
class A {
private $x = 0;
function getClosureGetter () {
return function () {
return function () {
$this->x++;
};
};
}
function printX () {
echo $this->x."\n";
}
}
$a = new A;
$a->printX();
$getClosure = $a->getClosureGetter();
$a->printX();
$closure = $getClosure();
$a->printX();
$closure();
$a->printX();
echo "Done\n";
?>
--EXPECT--
0
0
0
1
Done
+2 -4
View File
@@ -23,18 +23,16 @@ var_dump($y()->test);
?>
--EXPECTF--
object(foo)#%d (2) {
object(foo)#%d (%d) {
["test":"foo":private]=>
int(3)
["a"]=>
object(Closure)#%d (2) {
object(Closure)#%d (1) {
["static"]=>
array(1) {
["a"]=>
*RECURSION*
}
["this"]=>
*RECURSION*
}
}
bool(true)
+8 -18
View File
@@ -1,26 +1,16 @@
--TEST--
Closure 024: Clone the Closure object
Closure 024: Trying to clone the Closure object
--FILE--
<?php
$a = 1;
$c = function($add) use(&$a) { return $a+$add; };
$a = function () {
return clone function () {
return 1;
};
};
$cc = clone $c;
$a();
echo $c(10)."\n";
echo $cc(10)."\n";
$a++;
echo $c(10)."\n";
echo $cc(10)."\n";
echo "Done.\n";
?>
--EXPECTF--
11
11
12
12
Done.
Fatal error: Trying to clone an uncloneable object of class Closure in %s on line %d
+2 -9
View File
@@ -32,9 +32,7 @@ object(foo)#%d (1) {
["a"]=>
array(1) {
[0]=>
object(Closure)#%d (1) {
["this"]=>
*RECURSION*
object(Closure)#%d (0) {
}
}
}
@@ -43,12 +41,7 @@ int(1)
string(1) "a"
array(1) {
[0]=>
object(Closure)#%d (1) {
["this"]=>
object(foo)#%d (1) {
["a"]=>
*RECURSION*
}
object(Closure)#%d (0) {
}
}
int(1)
-33
View File
@@ -1,33 +0,0 @@
--TEST--
Closure 036: Rebinding closures
--FILE--
<?php
class A {
private $x;
public function __construct($v) {
$this->x = $v;
}
public function getIncrementor() {
return function() { return ++$this->x; };
}
}
$a = new A(0);
$b = new A(10);
$ca = $a->getIncrementor();
$cb = $ca->bindTo($b);
$cb2 = Closure::bind($b, $ca);
var_dump($ca());
var_dump($cb());
var_dump($cb2());
?>
--EXPECTF--
int(1)
int(11)
int(12)
-47
View File
@@ -1,47 +0,0 @@
--TEST--
Closure 037: self:: and static:: within closures
--FILE--
<?php
class A {
private $x = 0;
function getClosure () {
return function () {
$this->x++;
self::printX();
self::print42();
static::print42();
};
}
function printX () {
echo $this->x."\n";
}
function print42() {
echo "42\n";
}
}
class B extends A {
function print42() {
echo "forty two\n";
}
}
$a = new A;
$closure = $a->getClosure();
$closure();
$b = new B;
$closure = $b->getClosure();
$closure();
?>
Done.
--EXPECTF--
1
42
42
1
42
forty two
Done.
+1 -1
View File
@@ -1,5 +1,5 @@
--TEST--
concat different types
concat difffent types
--INI--
precision=14
--FILE--
+2 -3
View File
@@ -1,5 +1,5 @@
--TEST--
Persistent case insensitive and user defined constants
Persistent case insensetive and user defined constants
--FILE--
<?php
var_dump(ZEND_THREAD_safe);
@@ -7,6 +7,5 @@ define("ZEND_THREAD_safe", 123);
var_dump(ZEND_THREAD_safe);
?>
--EXPECTF--
Notice: Use of undefined constant ZEND_THREAD_safe - assumed 'ZEND_THREAD_safe' in %s on line %d
string(16) "ZEND_THREAD_safe"
bool(%s)
int(123)
-133
View File
@@ -1,133 +0,0 @@
--TEST--
debug_backtrace limit
--FILE--
<?php
function a() {
b();
}
function b() {
c();
}
function c() {
print_r(debug_backtrace(0, 1));
print_r(debug_backtrace(0, 2));
print_r(debug_backtrace(0, 0));
print_r(debug_backtrace(0, 4));
}
a();
?>
--EXPECTF--
Array
(
[0] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 7
[function] => c
[args] => Array
(
)
)
)
Array
(
[0] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 7
[function] => c
[args] => Array
(
)
)
[1] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 3
[function] => b
[args] => Array
(
)
)
)
Array
(
[0] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 7
[function] => c
[args] => Array
(
)
)
[1] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 3
[function] => b
[args] => Array
(
)
)
[2] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 17
[function] => a
[args] => Array
(
)
)
)
Array
(
[0] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 7
[function] => c
[args] => Array
(
)
)
[1] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 3
[function] => b
[args] => Array
(
)
)
[2] => Array
(
[file] => %s/debug_backtrace_limit.php
[line] => 17
[function] => a
[args] => Array
(
)
)
)
-397
View File
@@ -1,397 +0,0 @@
--TEST--
debug_backtrace options
--FILE--
<?php
function backtrace_print($opt = null)
{
if(is_null($opt)) {
print_r(debug_backtrace());
} else {
print_r(debug_backtrace($opt));
}
}
function doit($a, $b, $how)
{
echo "==default\n";
$how();
echo "==true\n";
$how(true);
echo "==false\n";
$how(false);
echo "==DEBUG_BACKTRACE_PROVIDE_OBJECT\n";
$how(DEBUG_BACKTRACE_PROVIDE_OBJECT);
echo "==DEBUG_BACKTRACE_IGNORE_ARGS\n";
$how(DEBUG_BACKTRACE_IGNORE_ARGS);
echo "==both\n";
$how(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS);
}
class foo {
protected function doCall($dowhat, $how)
{
$dowhat('a','b', $how);
}
static function statCall($dowhat, $how)
{
$obj = new self();
$obj->doCall($dowhat, $how);
}
}
foo::statCall("doit", "debug_print_backtrace");
foo::statCall("doit", "backtrace_print");
?>
--EXPECTF--
==default
#0 doit(a, b, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#1 foo->doCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#2 foo::statCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
==true
#0 doit(a, b, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#1 foo->doCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#2 foo::statCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
==false
#0 doit(a, b, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#1 foo->doCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#2 foo::statCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
==DEBUG_BACKTRACE_PROVIDE_OBJECT
#0 doit(a, b, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#1 foo->doCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
#2 foo::statCall(doit, debug_print_backtrace) called at [%sdebug_backtrace_options.php:%d]
==DEBUG_BACKTRACE_IGNORE_ARGS
#0 doit() called at [%sdebug_backtrace_options.php:%d]
#1 foo->doCall() called at [%sdebug_backtrace_options.php:%d]
#2 foo::statCall() called at [%sdebug_backtrace_options.php:%d]
==both
#0 doit() called at [%sdebug_backtrace_options.php:%d]
#1 foo->doCall() called at [%sdebug_backtrace_options.php:%d]
#2 foo::statCall() called at [%sdebug_backtrace_options.php:%d]
==default
Array
(
[0] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => backtrace_print
[args] => Array
(
)
)
[1] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doit
[args] => Array
(
[0] => a
[1] => b
[2] => backtrace_print
)
)
[2] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doCall
[class] => foo
[object] => foo Object
(
)
[type] => ->
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
[3] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => statCall
[class] => foo
[type] => ::
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
)
==true
Array
(
[0] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => 17
[function] => backtrace_print
[args] => Array
(
[0] => 1
)
)
[1] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doit
[args] => Array
(
[0] => a
[1] => b
[2] => backtrace_print
)
)
[2] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doCall
[class] => foo
[object] => foo Object
(
)
[type] => ->
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
[3] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => statCall
[class] => foo
[type] => ::
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
)
==false
Array
(
[0] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => 19
[function] => backtrace_print
[args] => Array
(
[0] =>
)
)
[1] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doit
[args] => Array
(
[0] => a
[1] => b
[2] => backtrace_print
)
)
[2] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doCall
[class] => foo
[type] => ->
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
[3] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => statCall
[class] => foo
[type] => ::
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
)
==DEBUG_BACKTRACE_PROVIDE_OBJECT
Array
(
[0] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => 21
[function] => backtrace_print
[args] => Array
(
[0] => 1
)
)
[1] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doit
[args] => Array
(
[0] => a
[1] => b
[2] => backtrace_print
)
)
[2] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doCall
[class] => foo
[object] => foo Object
(
)
[type] => ->
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
[3] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => statCall
[class] => foo
[type] => ::
[args] => Array
(
[0] => doit
[1] => backtrace_print
)
)
)
==DEBUG_BACKTRACE_IGNORE_ARGS
Array
(
[0] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => 23
[function] => backtrace_print
)
[1] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doit
)
[2] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doCall
[class] => foo
[type] => ->
)
[3] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => statCall
[class] => foo
[type] => ::
)
)
==both
Array
(
[0] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => 25
[function] => backtrace_print
)
[1] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doit
)
[2] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => doCall
[class] => foo
[object] => foo Object
(
)
[type] => ->
)
[3] => Array
(
[file] => %sdebug_backtrace_options.php
[line] => %d
[function] => statCall
[class] => foo
[type] => ::
)
)
@@ -1,31 +0,0 @@
--TEST--
debug_print_backtrace limit
--FILE--
<?php
function a() {
b();
}
function b() {
c();
}
function c() {
debug_print_backtrace(0, 1);
debug_print_backtrace(0, 2);
debug_print_backtrace(0, 0);
debug_print_backtrace(0, 4);
}
a();
?>
--EXPECTF--
#0 c() called at [%s/debug_print_backtrace_limit.php:7]
#0 c() called at [%s/debug_print_backtrace_limit.php:7]
#1 b() called at [%s/debug_print_backtrace_limit.php:3]
#0 c() called at [%s/debug_print_backtrace_limit.php:7]
#1 b() called at [%s/debug_print_backtrace_limit.php:3]
#2 a() called at [%s/debug_print_backtrace_limit.php:17]
#0 c() called at [%s/debug_print_backtrace_limit.php:7]
#1 b() called at [%s/debug_print_backtrace_limit.php:3]
#2 a() called at [%s/debug_print_backtrace_limit.php:17]
+6 -14
View File
@@ -2,29 +2,21 @@
Testing declare statement with several type values
--SKIPIF--
<?php
if (!extension_loaded("mbstring")) {
die("skip Requires ext/mbstring");
if (in_array("detect_unicode", array_keys(ini_get_all()))) {
die("skip");
}
?>
--INI--
zend.multibyte=1
--FILE--
<?php
declare(encoding = 1);
declare(encoding = 112313123213131232100);
declare(encoding = 1123131232131312321);
declare(encoding = NULL);
declare(encoding = 'utf-8');
declare(encoding = M_PI);
declare(encoding = 'utf-8');
print 'DONE';
?>
--EXPECTF--
Warning: Unsupported encoding [1] in %sdeclare_001.php on line %d
Warning: Unsupported encoding [1.1231312321313E+20] in %sdeclare_001.php on line %d
Warning: Unsupported encoding [] in %sdeclare_001.php on line %d
Fatal error: Cannot use constants as encoding in %sdeclare_001.php on line %d
--EXPECT--
DONE
-31
View File
@@ -1,31 +0,0 @@
--TEST--
Testing declare statement with several type values
--SKIPIF--
<?php
if (!ini_get("zend.multibyte")) {
die("skip Requires zend.multibyte=1");
}
if (!extension_loaded("mbstring")) {
die("skip Requires ext/mbstring");
}
?>
--FILE--
<?php
declare(encoding = 1);
declare(encoding = 1123131232131312321);
declare(encoding = NULL);
declare(encoding = 'utf-8');
declare(encoding = M_PI);
print 'DONE';
?>
--EXPECTF--
Warning: Unsupported encoding [%d] in %sdeclare_002.php on line 3
Warning: Unsupported encoding [%f] in %sdeclare_002.php on line 4
Warning: Unsupported encoding [] in %sdeclare_002.php on line 5
Fatal error: Cannot use constants as encoding in %sdeclare_002.php on line 7
-24
View File
@@ -1,24 +0,0 @@
--TEST--
Testing declare statement with several type values
--INI--
precision=15
zend.multibyte=1
--FILE--
<?php
declare(encoding = 1);
declare(encoding = 11111111111111);
declare(encoding = NULL);
declare(encoding = M_PI);
print 'DONE';
?>
--EXPECTF--
Warning: Unsupported encoding [1] in %sdeclare_003.php on line %d
Warning: Unsupported encoding [11111111111111] in %sdeclare_003.php on line %d
Warning: Unsupported encoding [] in %sdeclare_003.php on line %d
Fatal error: Cannot use constants as encoding in %sdeclare_003.php on line %d
-27
View File
@@ -1,27 +0,0 @@
--TEST--
Testing declare statement with several type values
--SKIPIF--
<?php
if (!ini_get("zend.multibyte")) {
die("skip Requires zend.multibyte=1");
}
?>
--FILE--
<?php
declare(encoding = 1);
declare(encoding = 1123131232131312321);
declare(encoding = NULL);
declare(encoding = M_PI);
print 'DONE';
?>
--EXPECTF--
Warning: Unsupported encoding [%d] in %sdeclare_004.php on line 3
Warning: Unsupported encoding [%f] in %sdeclare_004.php on line 4
Warning: Unsupported encoding [] in %sdeclare_004.php on line 5
Fatal error: Cannot use constants as encoding in %sdeclare_004.php on line 6
Loaded 100 of 2609 files, more files were not shown because too many files have changed in this diff. Show more