Compare commits

...
1084 Commits
Author SHA1 Message Date
Stanislav Malyshev c37265eacd Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update news
  add CVE
  add missing test file
  Fix bug #68594 - Use after free vulnerability in unserialize()

Conflicts:
	ext/standard/var_unserializer.c
2014-12-17 02:25:00 +01:00
Ferenc Kovacs fe1ab0e566 fix NEWS 2014-12-17 02:19:35 +01:00
Ferenc Kovacs 4f8fd1fdf6 update the date of the release 2014-12-16 18:26:48 +01:00
Anatol Belski e3b5de600d move the test to the right place 2014-12-10 14:14:22 +01:00
Julien Pauli eaaa352975 5.6.4 2014-12-10 14:12:55 +01:00
Anatol Belski 239bfe29a1 Fixed bug #68545 NULL pointer dereference in unserialize.c
Conflicts:
	ext/standard/var_unserializer.c
2014-12-10 13:58:20 +01:00
Dmitry Stogov ea2fc5a123 Fixed possible read after end of buffer and use after free. 2014-12-10 13:33:13 +01:00
Derick Rethans 3020b613ef Fixed day_of_week function as it could sometimes return negative values internally. 2014-12-10 13:32:58 +01:00
Ferenc Kovacs 5b098036e8 Merge branch 'PHP-5.6' into PHP-5.6.4
* PHP-5.6:
  the darwin specific test fails for me with the same output which is the expected for the original test I couldn't find anybody who managed to see this test passing, but I found a bunch of other reports on qa.php.net/reports and on google which do see this test failing on mac. if this change causes you to have this test failing on Mac, please drop me a mail so we can improve the current test so it passes for everybody.
  5.5.21 now
2014-11-27 00:15:16 +01:00
Ferenc Kovacs fcf21c4d00 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  the darwin specific test fails for me with the same output which is the expected for the original test I couldn't find anybody who managed to see this test passing, but I found a bunch of other reports on qa.php.net/reports and on google which do see this test failing on mac. if this change causes you to have this test failing on Mac, please drop me a mail so we can improve the current test so it passes for everybody.
  5.5.21 now

Conflicts:
	configure.in
	main/php_version.h
2014-11-27 00:13:11 +01:00
Ferenc Kovacs 5d67e8617b the darwin specific test fails for me with the same output which is the expected for the original test
I couldn't find anybody who managed to see this test passing, but I found a bunch of other reports on
qa.php.net/reports and on google which do see this test failing on mac.
if this change causes you to have this test failing on Mac, please drop me a mail so we can improve
the current test so it passes for everybody.
2014-11-27 00:08:40 +01:00
Ferenc Kovacs 25b119ef62 update NEWS 2014-11-26 23:20:45 +01:00
Ferenc Kovacs bddacad8a9 Merge branch 'PHP-5.6' into PHP-5.6.4
* PHP-5.6:
  #68446 is fixed
2014-11-26 23:19:41 +01:00
Ferenc Kovacs 543ad4b2d3 #68446 is fixed 2014-11-26 23:12:49 +01:00
Ferenc Kovacs 74796926a2 5.6.4RC1 2014-11-26 19:24:07 +01:00
Ferenc Kovacs 247774e3fd remove the NEWS entries for the reverted stuff 2014-11-26 19:13:46 +01:00
Ferenc Kovacs aef51819ce typo fix 2014-11-26 18:41:50 +01:00
Ferenc Kovacs 0afc04b913 go back with phpdbg to the state of 5.6.3, reverting the controversial commits(remote debugging/xml protocol) 2014-11-26 18:38:36 +01:00
Julien Pauli 3656349990 5.5.21 now 2014-11-26 11:31:58 +01:00
Ferenc Kovacs fa2a2a1059 PHP-5.6.5 is next 2014-11-26 10:21:37 +01:00
Anatol Belski fe92a811ed updated lib versions 2014-11-26 08:35:00 +01:00
Anatol Belski 1414f2c095 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  updated lib versions
2014-11-26 08:33:32 +01:00
Anatol Belski 68126a76b4 updated lib versions 2014-11-26 08:33:06 +01:00
Anatol Belski 4576b4d58a fix dir separator in test 2014-11-25 18:16:26 +01:00
Anatol Belski 2c8aee0bb8 fix TS build 2014-11-25 17:56:28 +01:00
Dmitry Stogov e116595e63 Better fix for bug #68446 2014-11-25 18:09:08 +03:00
Bob Weinand 0ca47ba8d8 Revert NEWS and set test to XFAIL 2014-11-25 12:27:17 +01:00
Bob Weinand aba95c2399 Revert "Fix bug #68446 (bug with constant defaults and type hints)"
This reverts commit 5ef138b0c7.
2014-11-25 12:24:29 +01:00
Stanislav Malyshev faa396c67d Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  move tests into proper place
2014-11-24 12:26:50 -08:00
Stanislav Malyshev f86aa349eb move tests into proper place 2014-11-24 12:26:20 -08:00
Anatol Belski 3578e5b250 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix dir separator in test
  fork test for windows
  update for LiteSpeed
2014-11-24 16:25:38 +01:00
Anatol Belski 09f2355eec fix dir separator in test 2014-11-24 16:14:17 +01:00
Anatol Belski ac8b1a9de1 fork test for windows 2014-11-24 16:09:26 +01:00
Stanislav Malyshev 1db49d8c5b Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update for LiteSpeed
2014-11-23 18:06:47 -08:00
Stanislav Malyshev f79bf4900a Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  update for LiteSpeed
2014-11-23 18:05:49 -08:00
Stanislav Malyshev 7dbc5e5c69 update for LiteSpeed 2014-11-23 18:05:26 -08:00
Stanislav Malyshev 4469049b7b update for LiteSpeed 2014-11-23 18:03:07 -08:00
Stanislav Malyshev 90445ba4a4 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  tests image gd
  xmlwriter_full_end_element tests
  Tests for writeAttributeNS and xmlwriter_write_attribute_ns
2014-11-23 17:52:50 -08:00
Stanislav Malyshev d7f27984d2 Merge branch 'pull-request/757' into PHP-5.5
* pull-request/757:
  xmlwriter_full_end_element tests
  Tests for writeAttributeNS and xmlwriter_write_attribute_ns
2014-11-23 17:52:43 -08:00
Stanislav Malyshev 711a3ab9d1 Merge branch 'pull-request/782' into PHP-5.5
* pull-request/782:
  tests image gd
2014-11-23 17:52:08 -08:00
Stanislav Malyshev a8dfb33db8 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Add my information to this test
  Add a test for the exception cases of readline_read_history
  added some tests to datetime and dateinterval functions
  added various tests for XSLTProcessor and one test for iconv extension
  teste basico da funcao timezone_version_get
2014-11-23 17:26:28 -08:00
Stanislav Malyshev 1330491994 Merge branch 'pull-request/854' into PHP-5.5
* pull-request/854:
  teste basico da funcao timezone_version_get
2014-11-23 17:23:34 -08:00
Stanislav Malyshev 9d7206dcea Merge branch 'pull-request/855' into PHP-5.5
* pull-request/855:
  added some tests to datetime and dateinterval functions
  added various tests for XSLTProcessor and one test for iconv extension
2014-11-23 17:22:54 -08:00
Stanislav Malyshev 24cd25824e Merge branch 'pull-request/856' into PHP-5.5
* pull-request/856:
  Add my information to this test
  Add a test for the exception cases of readline_read_history
2014-11-23 17:22:02 -08:00
Stanislav Malyshev 2c67c0246e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Test PHP Init Fail Without Params
2014-11-23 17:21:29 -08:00
Stanislav Malyshev fa76fa8e32 Merge branch 'pull-request/863' into PHP-5.5
* pull-request/863:
  Test PHP Init Fail Without Params
2014-11-23 17:21:20 -08:00
marcosptf 49a133dd0b test to function addcslashes
test to function bin2hex
2014-11-23 17:19:56 -08:00
marcosptf 2917c70252 test 2014-11-23 17:19:47 -08:00
Archil Imnadze 926bd6cc7a Update CODING_STANDARDS 2014-11-23 17:14:32 -08:00
Stanislav Malyshev 34c1ba5685 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Correct two zlib tests to use a string, not a const
2014-11-23 17:12:52 -08:00
Tim Siebels 5351ecbfca Correct two zlib tests to use a string, not a const 2014-11-23 17:12:37 -08:00
Stanislav Malyshev de075d172c update NEWS 2014-11-23 16:39:52 -08:00
Alexander Lisachenko a5aae1b66c Fix incorrect argument reflection info for array_multisort() 2014-11-23 16:38:30 -08:00
Stanislav Malyshev 5a3e236bd5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix NEWS order
2014-11-23 16:24:54 -08:00
Stanislav Malyshev 03dcf66f9a fix NEWS order 2014-11-23 16:21:53 -08:00
Stanislav Malyshev faee48506d Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update NEWS
  Update the VM generation script, per Bob.
  Update NEWS after rebase.
  Add BEGIN_EXTERN_C() and END_EXTERN_C() to .h files missing them.
2014-11-23 16:18:52 -08:00
Stanislav Malyshev 05394d6056 update NEWS 2014-11-23 16:18:04 -08:00
Stanislav Malyshev 9ef264504d Merge branch 'pull-request/840' into PHP-5.5
* pull-request/840:
  Update the VM generation script, per Bob.
  Update NEWS after rebase.
  Add BEGIN_EXTERN_C() and END_EXTERN_C() to .h files missing them.
2014-11-23 16:17:17 -08:00
Stanislav Malyshev 7e4de4f8d6 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Update comments in php.ini
2014-11-23 16:13:58 -08:00
Sobak 6d148f7ed9 Update comments in php.ini 2014-11-23 16:13:44 -08:00
Stanislav Malyshev fa7615af59 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  added missing INSTALL_ROOT
2014-11-23 16:09:40 -08:00
Sebastian Brandt c7248e6359 added missing INSTALL_ROOT 2014-11-23 16:09:24 -08:00
Reeze Xia 7386b74b07 Fix php.ini-*'s comment about directive: request_order
request_order directive only support register G,P,C but not all of
the EGPCS global variables.

The doc <http://php.net/manual/en/ini.core.php#ini.request-order>
is ok.
2014-11-23 16:07:47 -08:00
Kévin Dunglas 8439eb6277 Minor: typo fix in filter_var comment 2014-11-23 15:18:47 -08:00
Dominic Luechinger 437ab7f1f4 Minor fix: Missing quotes in openssl test case for bug bug64802 2014-11-23 15:15:49 -08:00
Bob Weinand dd70a2c7ae Added NEWS entry and test for bug 68446 2014-11-24 00:08:45 +01:00
Veres Lajos 4dc994571d typo fixes - https://github.com/vlajos/misspell_fixer
Conflicts:
	ext/ftp/ftp.h
	ext/pcre/pcrelib/pcre_printint.c
	ext/pcre/pcrelib/sljit/sljitLir.c
	ext/pcre/pcrelib/sljit/sljitLir.h
	ext/pcre/pcrelib/sljit/sljitNativeARM_32.c
	ext/pcre/pcrelib/sljit/sljitNativeTILEGX_64.c
	ext/pgsql/pgsql.c
	ext/phar/func_interceptors.c
	ext/soap/soap.c
	ext/standard/image.c
2014-11-23 14:33:43 -08:00
Bob Weinand 5ef138b0c7 Fix bug #68446 (bug with constant defaults and type hints) 2014-11-23 21:10:41 +01:00
Remi Collet c8dd415543 typo 2014-11-22 10:37:22 +01:00
Remi Collet 6e17a439a9 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fixed Bug #68478 acess_log don't use prefix
2014-11-22 10:36:54 +01:00
Remi Collet 9664312e30 NEWS 2014-11-22 10:36:45 +01:00
Remi Collet c50ee655ea Fixed Bug #68478 acess_log don't use prefix
Calling fpm_conf_process_all_pools before fpm_log_open
allow to use fpm_evaluate_full_path and so to honor
global prefix or pool prefix for access.log
2014-11-22 10:35:51 +01:00
Remi Collet 6b974874ab NEWS 2014-11-22 10:30:42 +01:00
Remi Collet 3a3f67f79b minor typo in test 2014-11-22 10:29:51 +01:00
Remi Collet fd5c421a00 add test for global / pool prefix and bug #68478 2014-11-22 10:29:05 +01:00
Remi Collet b924af8db9 Fixed Bug #68478 acess_log don't use prefix
Calling fpm_conf_process_all_pools before fpm_log_open
allow to use fpm_evaluate_full_path and so to honor
global prefix or pool prefix for access.log
2014-11-22 10:25:53 +01:00
Stanislav Malyshev 515fa6160d Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Revert "made lsapi_main.c compatible with PHP7/phpng ."
  Updated NEWS
2014-11-22 00:41:06 -08:00
Stanislav Malyshev bc55af0cf2 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Revert "made lsapi_main.c compatible with PHP7/phpng ."
2014-11-22 00:40:11 -08:00
Stanislav Malyshev 96cde1841a Revert "made lsapi_main.c compatible with PHP7/phpng ."
This reverts commit 9fb816f45a.
Not a security-related fix.
2014-11-22 00:38:04 -08:00
Julien Pauli 9a06628c80 Updated NEWS 2014-11-21 16:17:49 +01:00
Julien Pauli 99fa36cc58 Updated NEWS 2014-11-21 16:16:54 +01:00
Julien Pauli ab3525c401 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix #68185 - Inconsistent insteadof definition

Conflicts:
	Zend/zend_compile.c
2014-11-21 15:50:27 +01:00
Julien Pauli cd3b46f28a Fix #68185 - Inconsistent insteadof definition 2014-11-21 15:37:33 +01:00
Anatol Belski 64b9277867 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fixed test
2014-11-21 13:57:46 +01:00
Anatol Belski 59a9e7af21 fixed test
on Linux gettext requires a locale to be installed on the system
2014-11-21 13:56:49 +01:00
Remi Collet 1e14f805f9 add test for fastcgi_finish_request() 2014-11-21 11:28:20 +01:00
Anatol Belski 0581e877a5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  added test for things done so far for bug #66265
  partially fixed bug #66265
  forked bug67052.phpt for Windows
2014-11-21 10:24:53 +01:00
Anatol Belski f2e33dc725 added test for things done so far for bug #66265 2014-11-21 10:22:47 +01:00
Anatol Belski 56fac96bec partially fixed bug #66265
NTS mode should additionally use _putenv to satisfy libs like gettext
relying on _getenv. As _putenv isn't thread safe, it wouldn't bring
much for the TS mode as it would change locale across all the threads
and require locking to avoid random fails with concurrent _getenv
calls.
2014-11-21 09:57:12 +01:00
Anatol Belski 502ce90873 forked bug67052.phpt for Windows 2014-11-21 09:53:55 +01:00
Remi Collet b97fd60b42 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fix bug #68463 listen.allowed_clients can silently result in no allowed access
  Raise a warning when listen = hostname used and is resolved as multiple addresses
2014-11-21 07:56:48 +01:00
Remi Collet 8be510ae63 NEWS 2014-11-21 07:56:39 +01:00
Remi Collet 5be75da202 Fix bug #68463 listen.allowed_clients can silently result in no allowed access
Add a "There are no allowed addresses for this pool"
2014-11-21 07:55:13 +01:00
Remi Collet c4ca220467 Raise a warning when listen = hostname used and is resolved as multiple addresses
Using getaddrinfo is perhaps not a good idea... if we are not able
to listen on multiple addresses...

At least this message should help to diagnose problem, ex
... Found address for localhost, socket opened on ::1
... Found multiple addresses for localhost, 127.0.0.1 ignored
2014-11-21 07:54:51 +01:00
Remi Collet d10df70f4e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  move zlog_set_level() again
  Change pm.start_servers default warning to notice
2014-11-21 07:50:04 +01:00
Remi Collet 1f4972e348 NEWS 2014-11-21 07:49:53 +01:00
David Zuelke 9e8d4a1b06 move zlog_set_level() again
from fpm_unix_init_main() to fpm_conf_post_process() this time (see #894),
because otherwise nothing in fpm_conf_init_main() obeys log levels
2014-11-21 07:49:08 +01:00
David Zuelke 8beb153460 Change pm.start_servers default warning to notice
Unlike other settings, this has a perfectly reasonable default, calculated using
a dynamic formula. If the default was hardcoded to "2" or something, then it
would make sense to have a warning, since that could potentially be bad, but for
a dynamically calculated value based on other mandatory settings, a notice ought
to be enough.
2014-11-21 07:47:04 +01:00
Remi Collet 5234c2941f add test for #68391 2014-11-21 07:36:34 +01:00
Remi Collet 4ab05e8f69 NEWS 2014-11-21 07:35:49 +01:00
Remi Collet 61f6cd0da5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fixed bug #68391 Returns the pool config files in order
2014-11-21 07:35:10 +01:00
Remi Collet cf3a902286 NEWS 2014-11-21 07:34:40 +01:00
Florian MARGAINE 29d2c13809 Fixed bug #68391 Returns the pool config files in order
Fixes https://bugs.php.net/bug.php?id=68391
2014-11-21 07:33:15 +01:00
Adam Harvey 245d01892a Merge branch 'PHP-5.5' into PHP-5.6 2014-11-20 16:19:03 -08:00
Adam Harvey 73cb5ca777 Merge branch 'PHP-5.4' into PHP-5.5 2014-11-20 16:18:42 -08:00
George Wang b664909397 Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6 2014-11-20 16:56:28 -05:00
George Wang d467761663 Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5 2014-11-20 16:56:03 -05:00
George Wang 620db04e91 made lsapi_main.c compatible with PHP7/phpng . 2014-11-20 16:50:15 -05:00
George Wang bd3bc097b0 made lsapi_main.c compatible with PHP7/phpng . 2014-11-20 16:49:56 -05:00
George Wang 9fb816f45a made lsapi_main.c compatible with PHP7/phpng . 2014-11-20 16:49:01 -05:00
Remi Collet 15d8601866 NEWS 2014-11-20 15:16:39 +01:00
Remi Collet 6e1e113b91 adapt test for error message introduce in fix for #68463 2014-11-20 15:15:54 +01:00
Remi Collet 5c6ccb2d8f Fix bug #68463 listen.allowed_clients can silently result in no allowed access
Add a "There are no allowed addresses for this pool"
2014-11-20 15:14:34 +01:00
Remi Collet 7ef559ff80 run a few request in this test 2014-11-20 14:45:17 +01:00
Anatol Belski e25b23d1c9 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  split msgfmt_format_intlcalendar_variant*.phpt for ICU 54.1
  split formatter_format*.phpt for ICP 54.1
  split dateformat_timezone_arg_variations*.phpt for ICU 54.1
  split dateformat_get_set_timezone_variant*.phpt for ICU 54.1
  fix icu version to test
  split ext/intl/tests/dateformat_get_set_calendar_variant*.phpt for 54.1
  split dateformat_formatObject_datetime_variant*.phpt for ICU 54.1
  split dateformat_formatObject_calendar_variant*.phpt for ICU 54.1
  split dateformat_create_cal_arg_variant2.phpt for ICU 53.1 and 54.1
  clone dateformat_calendars_variant3.phpt for ICU 54.1
  split collator_get_sort_key_variant3.phpt for icu 54.1
  split ext/intl/tests/collator_create3.phpt for icu >= 54.1

Conflicts:
	ext/intl/tests/dateformat_create_cal_arg_variant3.phpt
	ext/intl/tests/dateformat_formatObject_calendar_variant3.phpt
	ext/intl/tests/dateformat_formatObject_datetime_variant3.phpt
	ext/intl/tests/dateformat_get_set_calendar_variant3.phpt
	ext/intl/tests/dateformat_get_set_timezone_variant3.phpt
	ext/intl/tests/dateformat_timezone_arg_variations3.phpt
	ext/intl/tests/msgfmt_format_intlcalendar_variant3.phpt
2014-11-20 13:36:37 +01:00
Anatol Belski 6c3768b154 split msgfmt_format_intlcalendar_variant*.phpt for ICU 54.1 2014-11-20 13:26:23 +01:00
Anatol Belski 65ca28b463 split formatter_format*.phpt for ICP 54.1 2014-11-20 13:17:41 +01:00
Anatol Belski 2ec7f04f7e split dateformat_timezone_arg_variations*.phpt for ICU 54.1 2014-11-20 13:12:02 +01:00
Anatol Belski a52ff5cde6 split dateformat_get_set_timezone_variant*.phpt for ICU 54.1 2014-11-20 13:06:22 +01:00
Anatol Belski 36a2e235dd fix icu version to test 2014-11-20 13:01:04 +01:00
Anatol Belski 96249b68e5 split ext/intl/tests/dateformat_get_set_calendar_variant*.phpt for 54.1 2014-11-20 12:58:41 +01:00
Anatol Belski 278d71e508 split dateformat_formatObject_datetime_variant*.phpt for ICU 54.1 2014-11-20 12:53:11 +01:00
Anatol Belski 9cfe459e21 split dateformat_formatObject_calendar_variant*.phpt for ICU 54.1 2014-11-20 12:46:48 +01:00
Anatol Belski 54af278762 split dateformat_create_cal_arg_variant2.phpt for ICU 53.1 and 54.1 2014-11-20 12:39:52 +01:00
Anatol Belski b61dba5e1d clone dateformat_calendars_variant3.phpt for ICU 54.1 2014-11-20 11:49:39 +01:00
Anatol Belski 8ca69ff641 split collator_get_sort_key_variant3.phpt for icu 54.1 2014-11-20 11:37:06 +01:00
Anatol Belski f97fc096a3 split ext/intl/tests/collator_create3.phpt for icu >= 54.1 2014-11-20 11:17:42 +01:00
Remi Collet 9fd54bd9d8 Raise a warning when listen = hostname used and is resolved as multiple addresses
Using getaddrinfo is perhaps not a good idea... if we are not able
to listen on multiple addresses...

At least this message should help to diagnose problem, ex
... Found address for localhost, socket opened on ::1
... Found multiple addresses for localhost, 127.0.0.1 ignored
2014-11-20 10:15:15 +01:00
Remi Collet 914787491d NEWS 2014-11-20 08:15:13 +01:00
Remi Collet 1939097ede Fixed #68458 Change pm.start_servers default warning to notice
Add another test
014 checks that no "notice" are traced when log_level=warning
015 checks that "notice" are traced when log_level=notice
2014-11-20 08:12:27 +01:00
David Zuelke a128cbad57 fix test description 2014-11-20 08:11:44 +01:00
David Zuelke 49be4af42b tests for #895 2014-11-20 08:11:44 +01:00
David Zuelke befce20c84 move zlog_set_level() again
from fpm_unix_init_main() to fpm_conf_post_process() this time (see #894),
because otherwise nothing in fpm_conf_init_main() obeys log levels
2014-11-20 08:11:43 +01:00
David Zuelke 909d44f20d Change pm.start_servers default warning to notice
Unlike other settings, this has a perfectly reasonable default, calculated using
a dynamic formula. If the default was hardcoded to "2" or something, then it
would make sense to have a warning, since that could potentially be bad, but for
a dynamically calculated value based on other mandatory settings, a notice ought
to be enough.
2014-11-20 08:11:43 +01:00
Remi Collet 7e0ccb6d12 Factorization and consistency
- create a fpm_use_error_log() to check when file or stderr should be used
- use it everywhere for consistency
- add some comments
2014-11-20 07:49:54 +01:00
Peter Cowburn 48c0cf7df6 NEWS 2014-11-19 17:03:15 +00:00
Chris McCafferty 1e92b24a2a Fix #68355: Inconsistency in example php.ini comments
There are some arbitrary differences between php.ini-production and
php.ini-development. This patch corrects the differences.
2014-11-19 16:57:47 +00:00
Remi Collet a521d7e1be NEWS 2014-11-19 16:49:23 +01:00
Remi Collet c5a1c5f5a4 Fixed bug #68452 php-fpm man page is oudated (-O) 2014-11-19 16:49:05 +01:00
Remi Collet 4a36482378 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fixed bug #68452 php-fpm man page is oudated (-g, -R, -z)
  NEWS
  Fixed bug #68381 Set FPM log level earlier during init
2014-11-19 16:48:21 +01:00
Remi Collet d438bcf226 NEWS 2014-11-19 16:47:52 +01:00
Remi Collet 858c9d86fa Fixed bug #68452 php-fpm man page is oudated (-g, -R, -z) 2014-11-19 16:46:51 +01:00
Remi Collet c40e665ecd NEWS 2014-11-18 17:45:50 +01:00
Remi Collet f164df0b7b add test for bug #68381 2014-11-18 17:45:50 +01:00
David Zuelke 9a43410871 Fixed bug #68381 Set FPM log level earlier during init
The log level will be ignored throughout log events in fpm_unix_init_main, until
the very end when zlog_set_level is finally called.

In particular, fpm_unix_conf_wp may throw notices like this:

> [08-Nov-2014 17:13:36] NOTICE: [pool www] 'user' directive is ignored when…

Which will still appear even if log_level in php-fpm.conf is set to warning+
2014-11-18 17:45:49 +01:00
Remi Collet 5674827ead NEWS 2014-11-18 17:43:28 +01:00
David Zuelke 03cf70ab1e Fixed bug #68381 Set FPM log level earlier during init
The log level will be ignored throughout log events in fpm_unix_init_main, until
the very end when zlog_set_level is finally called.

In particular, fpm_unix_conf_wp may throw notices like this:

> [08-Nov-2014 17:13:36] NOTICE: [pool www] 'user' directive is ignored when…

Which will still appear even if log_level in php-fpm.conf is set to warning+
2014-11-18 17:42:21 +01:00
Remi Collet ec26d7a80f simplify fpm tests 2014-11-18 13:11:53 +01:00
Remi Collet 51394dff3f Add test for bug #68442
Add another helper function fpm_display_log

Restore change from c996a989 badly reverted in 8c0cc49
2014-11-18 11:08:49 +01:00
Remi Collet 8c0cc49b9b Add various tests for FPM
- covering recent bugs (68420, 68421, 68423, 68428)
- for UDS
- for ping and status URI
- for multi pool and multi mode
2014-11-18 08:07:45 +01:00
Remi Collet a740f9e783 Include small MIT FastCGI client library from
https://github.com/adoy/PHP-FastCGI-Client

Add run_request function to easily run a FastCGI call,
which is needed for new tests.
2014-11-18 08:01:18 +01:00
Remi Collet d8868b654e Add new FPM test for IPv4/IPv6
Use 9000+PHP_INT_SIZE as poprt
- to avoid using default 9000
- to allow multipole 32/64 bits simultaneous run
2014-11-17 15:22:04 +01:00
Remi Collet c996a9899e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update fpm configuration for #68428
  fix incompatible pointer types
2014-11-17 09:43:26 +01:00
Remi Collet d9fd670fdc update fpm configuration for #68428 2014-11-17 09:43:23 +01:00
Remi Collet 09f9f7ce50 update fpm configuration for #68428 2014-11-17 09:43:09 +01:00
Anatol Belski 873a460c7c fix incompatible pointer types 2014-11-17 09:33:58 +01:00
Anatol Belski 1504e9c9df fix incompatible pointer types 2014-11-17 09:33:37 +01:00
Remi Collet 82c71158c1 NEWS 2014-11-17 09:23:47 +01:00
Remi Collet 45b17d0f96 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fixed bug #68428 allowed_client is IPv4 only
2014-11-17 09:23:26 +01:00
Remi Collet 6d9b4ca5fc NEWS 2014-11-17 09:23:16 +01:00
Remi Collet 3a8103ae47 Fixed bug #68428 allowed_client is IPv4 only 2014-11-17 09:22:13 +01:00
Remi Collet f22e0c0a6a Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  comment about ipv4-mapped in fpm conf
  Improve fix bug #68421 access.format='%R' doesn't log ipv6 address
2014-11-17 06:58:28 +01:00
Remi Collet 4475cbdc85 comment about ipv4-mapped in fpm conf 2014-11-17 06:57:59 +01:00
Remi Collet 4657289e87 Improve fix bug #68421 access.format='%R' doesn't log ipv6 address
Log IPv4-Mapped-Ipv6 address as IPv4 (not as IPv6)
2014-11-17 06:53:38 +01:00
Remi Collet 10a957ed35 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  improve comments about FPM listen option
2014-11-16 18:00:24 +01:00
Remi Collet 23fd22f9ed improve comments about FPM listen option 2014-11-16 17:59:36 +01:00
Remi Collet 51acb9dddd NEWS 2014-11-15 08:14:43 +01:00
Remi Collet e52295988c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
2014-11-15 08:14:09 +01:00
Remi Collet 69b9381901 NEWS 2014-11-15 08:13:56 +01:00
Remi Collet 9871cf78f6 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed Bug #68420 listen=9000 listens to ipv6 localhost instead of all addresses
2014-11-15 08:11:32 +01:00
Remi Collet 1d9bb287c5 Fixed Bug #68420 listen=9000 listens to ipv6 localhost instead of all addresses
Restore default behavior when no address configured:
Listen on all IPv4 addresses.

At some time we could consider to switch to all IPv6
but this will be a BC break.
2014-11-15 08:08:23 +01:00
Remi Collet 548352aa1e NEWS 2014-11-14 19:14:42 +01:00
Remi Collet 546fb3407d Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
2014-11-14 19:14:02 +01:00
Remi Collet e4974f6cc6 NEWS 2014-11-14 19:13:53 +01:00
Remi Collet b7bc907cfd Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #68421 access.format='%R' doesn't log ipv6 address
2014-11-14 19:10:19 +01:00
Remi Collet 5112fdd670 Fix bug #68421 access.format='%R' doesn't log ipv6 address 2014-11-14 19:09:50 +01:00
Remi Collet d66640a334 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #68423i PHP-FPM will no longer load all pools
2014-11-14 17:32:46 +01:00
Remi Collet 23db119768 Fix bug #68423i PHP-FPM will no longer load all pools
The hash need to be unique per IP + Port
Previous version have (IPv4 only)
   sprintf(key, "%u.%u.%u.%u:%u", IPQUAD(&sa_in->sin_addr), (unsigned int) ntohs(sa_in->sin_port));
2014-11-14 17:29:31 +01:00
Remi Collet 063a06b8e5 NEWS for 1b15620744 2014-11-14 10:58:27 +01:00
Remi Collet 1b15620744 Fix build with gmp < 4.2
See 3d6d863ccb
and acd7fcf55f
2014-11-13 13:08:00 +01:00
Matteo Beccati 86127a077f Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed NEWS
2014-11-12 16:54:17 +01:00
Matteo Beccati faaea4f304 Fixed NEWS
Some entries had been mistakenly removed in ad468d20b1
2014-11-12 16:51:26 +01:00
Ferenc Kovacs 00e763f499 update NEWS 2014-11-12 14:51:18 +01:00
Ferenc Kovacs fea84a1c9c update NEWS 2014-11-12 14:45:39 +01:00
Ferenc Kovacs 5f15d6f0d8 update NEWS 2014-11-12 14:28:45 +01:00
Matteo Beccati 07655ffe7e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #53829 Compiling PHP with large file support will replace function gzopen by gzopen64
2014-11-12 11:22:48 +01:00
Matteo Beccati 65fee90462 Fixed bug #53829 Compiling PHP with large file support will replace function gzopen by gzopen64 2014-11-12 11:21:11 +01:00
Julien Pauli 14d3e173aa Fixed wrong NEWS 2014-11-12 10:59:54 +01:00
Yasuo Ohgaki 9e072d9565 Remove unneeded md5 hashing from PHP-5.6 branch.
It's removed from master already by my previous commit.
2014-11-12 13:43:54 +09:00
Stanislav Malyshev 1b143f4033 fix loop - size_t is unsigned so can not be negative 2014-11-11 16:33:02 -08:00
Stanislav Malyshev 4571cc2195 fix copypaste error 2014-11-11 16:33:02 -08:00
Stanislav Malyshev 99b538a722 Merge branch 'PHp-5.4' into PHP-5.5
* PHp-5.4:
  5.4.36-dev
  Fixed bug #66584 Segmentation fault on statement deallocation

Conflicts:
	configure.in
	main/php_version.h
2014-11-11 16:32:38 -08:00
Stanislav Malyshev 98b22864ff 5.4.36-dev 2014-11-11 16:31:38 -08:00
Matteo Beccati 2323e95df9 Fixed bug #66584 Segmentation fault on statement deallocation 2014-11-11 16:25:31 -08:00
Ferenc Kovacs 74d6c23b39 update NEWS 2014-11-12 00:25:16 +01:00
Ferenc Kovacs a2e7b9162c update NEWS 2014-11-12 00:21:04 +01:00
Ferenc Kovacs 654bb8faf3 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update NEWS
  update NEWS
2014-11-12 00:20:54 +01:00
Ferenc Kovacs 791fc70025 update NEWS 2014-11-12 00:19:51 +01:00
Ferenc Kovacs b05e123cde Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  update NEWS
2014-11-12 00:18:55 +01:00
Ferenc Kovacs db5ad4c51f update NEWS 2014-11-12 00:18:13 +01:00
Derick Rethans a19d96fc58 Merge branch 'PHP-5.5' into PHP-5.6 2014-11-11 14:01:26 -03:00
Derick Rethans 695a102ede - Updated to version 2014.10 (2014j) 2014-11-11 14:01:24 -03:00
Xinchen Hui 399ec40a76 Update NEWS 2014-11-11 16:24:59 +08:00
Xinchen Hui e003c56c74 Merge branch 'PHP-5.5' into PHP-5.6 2014-11-11 16:23:18 +08:00
Xinchen Hui 327d4f9afb Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes) 2014-11-11 16:22:49 +08:00
Rasmus Lerdorf 96c5c1ef59 Fix skipif test here 2014-11-10 10:42:57 -08:00
Rasmus Lerdorf ad468d20b1 Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5
* 'PHP-5.5' of git.php.net:php-src:
  Fixed bug #68370 ("unset($this)" can make the program crash)
  Fixed NEWS for 5.5
  Fix opcache.revalidate_freq per-request behavior
  Partial fix for bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy)
2014-11-10 10:42:30 -08:00
Rasmus Lerdorf bff7dc70d8 Fix skipif test here 2014-11-10 10:42:17 -08:00
Rasmus Lerdorf 19992250cf Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6
* 'PHP-5.6' of git.php.net:php-src:
  Update NEWS
  Fixed bug #68370 ("unset($this)" can make the program crash)
  Fix opcache.revalidate_freq per-request behavior
  Partial fix for bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy)
  Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving)
2014-11-10 10:36:46 -08:00
Xinchen Hui 7d69fa7179 Merge branch 'PHP-5.5' of https://git.php.net/repository/php-src into PHP-5.5 2014-11-10 13:52:07 +08:00
Xinchen Hui eacf998af2 Update NEWS 2014-11-10 13:47:50 +08:00
Xinchen Hui b9e44888c0 Merge branch 'PHP-5.5' into PHP-5.6 2014-11-10 13:47:14 +08:00
Xinchen Hui ab84939254 Fixed bug #68370 ("unset($this)" can make the program crash) 2014-11-10 13:46:47 +08:00
Julien Pauli 722dd4637b Fixed NEWS for 5.5 2014-11-07 12:59:48 +01:00
Dmitry Stogov e6581d52cc Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix opcache.revalidate_freq per-request behavior
2014-11-07 10:17:48 +03:00
Dmitry Stogov 033abd6d77 Fix opcache.revalidate_freq per-request behavior 2014-11-07 10:16:25 +03:00
Dmitry Stogov e120438c8c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Partial fix for bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy)
  Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving)
2014-11-07 09:54:05 +03:00
Dmitry Stogov ed4c0245c7 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Partial fix for bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy)
2014-11-07 09:48:26 +03:00
Dmitry Stogov 9dfa843a38 Partial fix for bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy) 2014-11-07 09:46:49 +03:00
Rasmus Lerdorf 2375d659d7 Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6
* 'PHP-5.6' of git.php.net:php-src: (142 commits)
  Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving)
  Update NEWS
  Fixed bug #68331 - This was partial patch for https://wiki.php.net/rfc/session-lock-ini
  fix dir separator in test
  arg1-3 are not variable names to use; removed useless buffer variable
  update NEWS
  Fix bug #63595 GMP memory management conflicts with other libraries using GMP
  Initialize the offset table - PCRE may sometimes miss offsets
  set default response code to 200
  set default response code to 200
  set default response code to 200
  Fixed bug #66584 Segmentation fault on statement deallocation
  Add credit
  fix ZTS build
  Added PGSQL_TEST_CONNSTR env var support for ext/pgsql tests
  Fixed bug #67462 PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction
  Fixed Bug #68104 (Segfault while pre-evaluating a disabled function)
  Temporarily disable wait/xml protocol...
  don't try to send in the test results until we restored qa.php.net
  Fix uninitialized value...
  ...
2014-11-06 10:19:45 -08:00
Rasmus Lerdorf 96a6f688cb Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5
* 'PHP-5.5' of git.php.net:php-src:
  Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving)
2014-11-06 09:49:11 -08:00
Matteo Beccati 8fccf0bac9 Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving) 2014-11-06 16:34:47 +01:00
Matteo Beccati 8fdc4d8797 Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving) 2014-11-06 15:47:32 +01:00
Yasuo Ohgaki c9c8f86539 Update NEWS 2014-11-06 13:54:16 +09:00
Yasuo Ohgaki 4dd3fbfcd2 Fixed bug #68331 - This was partial patch for https://wiki.php.net/rfc/session-lock-ini 2014-11-06 13:06:29 +09:00
Rasmus Lerdorf 63831d6984 Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5
* 'PHP-5.5' of git.php.net:php-src: (29 commits)
  fix dir separator in test
  update NEWS
  Fix bug #63595 GMP memory management conflicts with other libraries using GMP
  Initialize the offset table - PCRE may sometimes miss offsets
  set default response code to 200
  set default response code to 200
  Fixed bug #66584 Segmentation fault on statement deallocation
  fix ZTS build
  Added PGSQL_TEST_CONNSTR env var support for ext/pgsql tests
  Fixed bug #67462 PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction
  don't try to send in the test results until we restored qa.php.net
  Don't treat warnings as failures in the junit output
  Fixed test to work with recent libcurl versions
  PHP 5.5.20 now
  Ensure we have enough input data before parsing date
  Fix bug #68095 - invalid read in php_getopt()
  NEWS
  Fix bug #63595 GMP memory management conflicts with other libraries using GMP
  - Updated to version 2014.9 (2014i)
  updated libmagic.patch in 5.5
  ...
2014-11-05 12:39:42 -08:00
Anatol Belski d4050f42fd Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix dir separator in test
2014-11-05 15:43:13 +01:00
Anatol Belski 53266476e6 fix dir separator in test 2014-11-05 15:42:45 +01:00
Bob Weinand 342d56b23d arg1-3 are not variable names to use; removed useless buffer variable 2014-11-04 16:59:32 +01:00
Stanislav Malyshev c511e0560f Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update NEWS
  Fix bug #63595 GMP memory management conflicts with other libraries using GMP
2014-11-03 11:43:51 -08:00
Stanislav Malyshev acd93dfb6d Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  update NEWS
  Fix bug #63595 GMP memory management conflicts with other libraries using GMP
2014-11-03 11:43:40 -08:00
Stanislav Malyshev 0ddcf2a919 update NEWS 2014-11-03 11:43:15 -08:00
Remi Collet 7740edae36 Fix bug #63595 GMP memory management conflicts with other libraries using GMP
Drop use of php memory allocators as this raise various conflicts
with other extensions and libraries which use libgmp.

No other solution found.
We cannot for ensure correct use of allocator with shared lib.

Some memory can allocated before php init
Some memory can be freed after php shutdown

Known broken run cases
- php + curl + gnutls + gmp
- mod_gnutls + mod_php + gnutls + gmp
- php + freetds + gnutls + gmp
- php + odbc + freetds + gnutls + gmp
- php + php-mapi (zarafa) + gnutls + gmp
2014-11-03 11:42:15 -08:00
Stanislav Malyshev 90ba99a2c2 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Initialize the offset table - PCRE may sometimes miss offsets
  set default response code to 200
  set default response code to 200
  fix NEWS & version
  NEWS
  Fix bug #68283: fileinfo: out-of-bounds read in elf note headers
  Fix bug #68113 (Heap corruption in exif_thumbnail())
  Fix bug #68089 - do not accept options with embedded \0
  Fixed bug #68044: Integer overflow in unserialize() (32-bits only)
  Fix bug #68027 - fix date parsing in XMLRPC lib
2014-11-03 11:38:29 -08:00
Stanislav Malyshev 279550ee85 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Initialize the offset table - PCRE may sometimes miss offsets
  set default response code to 200
  fix NEWS & version
  NEWS
  Fix bug #68283: fileinfo: out-of-bounds read in elf note headers
  Fix bug #68113 (Heap corruption in exif_thumbnail())
  Fix bug #68089 - do not accept options with embedded \0
  Fixed bug #68044: Integer overflow in unserialize() (32-bits only)
  Fix bug #68027 - fix date parsing in XMLRPC lib

Conflicts:
	configure.in
	ext/curl/interface.c
	main/php_version.h
2014-11-03 11:37:43 -08:00
Stanislav Malyshev c351b47ce8 Initialize the offset table - PCRE may sometimes miss offsets 2014-11-03 11:31:02 -08:00
George Wang bba11e3255 Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6 2014-11-03 11:44:13 -05:00
George Wang 3918e544d8 Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5 2014-11-03 11:43:43 -05:00
George Wang 4435161456 set default response code to 200 2014-11-03 11:43:04 -05:00
George Wang 19f3f4b155 set default response code to 200 2014-11-03 11:42:45 -05:00
George Wang 1a2ec3fc60 set default response code to 200 2014-11-03 11:42:01 -05:00
Matteo Beccati e12d69df0c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #66584 Segmentation fault on statement deallocation
2014-11-01 19:20:43 +01:00
Matteo Beccati 69f6aee35c Fixed bug #66584 Segmentation fault on statement deallocation 2014-11-01 19:19:56 +01:00
Xinchen Hui 00b50850eb Add credit 2014-11-01 22:29:55 +08:00
Anatol Belski 1b1f7c627a Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix ZTS build
2014-10-31 19:53:39 +01:00
Anatol Belski 1fc80d0ca7 fix ZTS build 2014-10-31 19:53:16 +01:00
Matteo Beccati e797db8909 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Added PGSQL_TEST_CONNSTR env var support for ext/pgsql tests
  Fixed bug #67462 PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction
2014-10-31 18:57:59 +01:00
Matteo Beccati 29ee694341 Added PGSQL_TEST_CONNSTR env var support for ext/pgsql tests 2014-10-31 18:54:16 +01:00
Matteo Beccati 9580fcfedd Fixed bug #67462 PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction 2014-10-31 18:11:32 +01:00
Adam Harvey 4bb836be20 Update the VM generation script, per Bob. 2014-10-31 10:10:49 -07:00
Adam Harvey 087150de95 Update NEWS after rebase. 2014-10-31 10:09:14 -07:00
Adam Harvey 5b5f99ef18 Add BEGIN_EXTERN_C() and END_EXTERN_C() to .h files missing them. 2014-10-31 10:08:17 -07:00
Xinchen Hui d017c4bf3a Merge branch 'PHP-5.6' of https://git.php.net/repository/php-src into PHP-5.6 2014-10-31 17:36:33 +08:00
Xinchen Hui d9d181e5ad Fixed Bug #68104 (Segfault while pre-evaluating a disabled function) 2014-10-31 17:32:23 +08:00
Bob Weinand 113f1fd6d5 Temporarily disable wait/xml protocol... 2014-10-30 23:09:57 +01:00
Ferenc Kovacs 067852ca61 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  don't try to send in the test results until we restored qa.php.net
  Don't treat warnings as failures in the junit output

Conflicts:
	.travis.yml
2014-10-30 18:14:37 +01:00
Ferenc Kovacs 5515937073 don't try to send in the test results until we restored qa.php.net 2014-10-30 18:12:37 +01:00
Bob Weinand b9d1dc329f Merge phpdbg into PHP-5.6 2014-10-30 13:17:58 +01:00
Bob Weinand 4fd66387a9 Fix uninitialized value... 2014-10-30 12:15:27 +01:00
Anatol Belski 73e2dd3381 add DLL export to the output globals 2014-10-30 10:27:20 +01:00
Xinchen Hui 9e1da42af1 Use macro 2014-10-30 11:52:29 +08:00
Xinchen Hui 7b4993dd16 Fixed build.... (shouldn't it be zend_output_globals?) 2014-10-30 11:42:02 +08:00
Anatol Belski fc904569ea fix output globals importing 2014-10-29 20:03:28 +01:00
Anatol Belski 5d76185792 export output globals
needed by phpdbg
2014-10-29 20:02:41 +01:00
Anatol Belski 4b8f411d31 use portable strndup implementation 2014-10-29 19:49:20 +01:00
Anatol Belski f842b8f4be unix sockets aren't available on windows 2014-10-29 19:39:46 +01:00
Anatol Belski fdbfcc0b51 dll export APIs needed by phpdbg 2014-10-29 19:32:52 +01:00
Anatol Belski 79a4339f1b fix sapi/phpdbg/config.w32 2014-10-29 19:28:21 +01:00
Matteo Beccati 8bd58502ca Don't treat warnings as failures in the junit output
This matches Travis and the actual return code.
2014-10-29 14:34:58 +01:00
Matteo Beccati a3b4f8320d Don't treat warnings as failures in the junit output
This matches Travis and the actual return code.
2014-10-29 14:33:36 +01:00
Bob Weinand 68b5dd2ba9 Merge phpdbg into PHP-5.6 2014-10-29 11:43:01 +01:00
Bob Weinand 6545a5c234 Merge php-src into phpdbg 2014-10-29 11:40:56 +01:00
Matteo Beccati eb4e4b7bca Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed test to work with recent libcurl versions
  PHP 5.5.20 now

Conflicts:
	configure.in
	main/php_version.h
2014-10-29 11:32:12 +01:00
Matteo Beccati daf9357d27 Fixed test to work with recent libcurl versions 2014-10-29 11:28:27 +01:00
Bob Weinand 919bd3eb0c Enable shared builds for webhelper 2014-10-29 11:28:09 +01:00
Remi Collet 89e613cf01 cleanup uneeded json 2014-10-29 07:26:41 +01:00
Remi Collet 7dd871438f cleanup uneeded json 2014-10-29 07:26:41 +01:00
Bob Weinand beb767dbe0 Merge phpdbg into PHP-5.6 2014-10-28 23:06:50 +01:00
Bob Weinand a5415456d4 Merge phpdbg into PHP-5.6 2014-10-28 23:06:50 +01:00
Bob Weinand 31ada13463 Removed last HAVE_JSON check 2014-10-28 23:06:32 +01:00
Bob Weinand 45e2dc692b Merge phpdbg into PHP-5.6 2014-10-28 22:44:29 +01:00
Bob Weinand be5d389768 Merge phpdbg into PHP-5.6 2014-10-28 22:44:29 +01:00
Bob Weinand 234df7d2ca Fix versions & config.m4 2014-10-28 22:33:41 +01:00
Bob Weinand 4bc7a91be7 Merge ../phpdbg into PHP-5.6
Conflicts:
	sapi/phpdbg/config.m4
2014-10-28 22:15:05 +01:00
Bob Weinand 6150d9342c Merge ../phpdbg into PHP-5.6
Conflicts:
	sapi/phpdbg/config.m4
2014-10-28 22:15:05 +01:00
Bob Weinand d25cc7f090 Use serialize instead of json for transfer 2014-10-28 22:14:35 +01:00
Bob Weinand 69b999eb7e Add webhelper in config.w32 2014-10-28 22:11:30 +01:00
Bob Weinand 9ba0654ad7 Merge php-src into phpdbg
Conflicts:
	config.m4
2014-10-28 21:15:47 +01:00
Remi Collet 36fef6dcd9 fix phpdbg build when src tree != build tree 2014-10-28 19:12:41 +01:00
Remi Collet 9028846c63 fix phpdbg build when src tree != build tree 2014-10-28 19:12:41 +01:00
Bob Weinand 2a24763f6c Merge ../phpdbg into PHP-5.6 2014-10-28 17:42:38 +01:00
Bob Weinand 7561e6b6e3 Remove the ugly hack via a temp file to store breakpoints 2014-10-28 17:25:48 +01:00
Bob Weinand 297baa0c18 Remove the ugly hack via a temp file to store breakpoints 2014-10-28 17:25:48 +01:00
Bob Weinand 82640b7363 Typo (notfoundc => notfound) 2014-10-28 17:25:46 +01:00
Bob Weinand fd8a70b1ee Typo (notfoundc => notfound) 2014-10-28 17:25:46 +01:00
Bob Weinand c895fbea22 Fix quitting on a second run 2014-10-28 17:25:46 +01:00
Bob Weinand 76bd799eb7 Fix quitting on a second run 2014-10-28 17:25:46 +01:00
Bob Weinand b7d83ff8a6 Fix wrong exec length on relative paths 2014-10-28 17:25:45 +01:00
Bob Weinand c34fd92466 Fix wrong exec length on relative paths 2014-10-28 17:25:45 +01:00
Bob Weinand a8ac22452d Fix possibly unclosed <stream> tags 2014-10-28 17:25:45 +01:00
Bob Weinand cc3587f4a3 Fix possibly unclosed <stream> tags 2014-10-28 17:25:45 +01:00
Bob Weinand 9990089f28 Fix potential segfaults and unresolved breaks 2014-10-28 17:25:43 +01:00
Bob Weinand 79c66e7cd2 Fix potential segfaults and unresolved breaks 2014-10-28 17:25:43 +01:00
Bob Weinand 64774c7ddb *Always* clean up and run destructors 2014-10-28 17:25:43 +01:00
Bob Weinand fe5f5d40f2 *Always* clean up and run destructors 2014-10-28 17:25:43 +01:00
Bob Weinand 49e31265ed Remove the ugly hack via a temp file to store breakpoints 2014-10-28 17:20:21 +01:00
Julien Pauli c7f074b163 5.6.4 now 2014-10-28 16:00:19 +01:00
Julien Pauli 71e200b338 PHP 5.5.20 now 2014-10-28 15:01:53 +01:00
Bob Weinand b24640f463 Typo (notfoundc => notfound) 2014-10-28 13:55:56 +01:00
Bob Weinand b8dd98178c Fix quitting on a second run 2014-10-28 13:55:14 +01:00
Bob Weinand 24a88e3906 Fix wrong exec length on relative paths 2014-10-28 13:27:20 +01:00
Bob Weinand 2b3ea0a2bd Fix possibly unclosed <stream> tags 2014-10-28 13:20:43 +01:00
Bob Weinand da3d6f3d64 Fix potential segfaults and unresolved breaks 2014-10-28 12:38:07 +01:00
Bob Weinand cce9550e48 *Always* clean up and run destructors 2014-10-28 12:27:19 +01:00
Remi Collet 47acdcb176 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Ensure we have enough input data before parsing date
2014-10-28 08:50:48 +01:00
Remi Collet 13a218d328 Ensure we have enough input data before parsing date
This check have be removed in
http://git.php.net/?p=php-src.git;a=commit;h=ba2f87b50667f147c198abd31fc31eb09522f3d7
But the parser really need 17 char.
And the string need to be nul terminated for this check
So avoid reading random byte from memory.
2014-10-28 08:48:22 +01:00
Stanislav Malyshev c5659cb8bd Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #68095 - invalid read in php_getopt()
2014-10-27 19:09:39 -07:00
Stanislav Malyshev deadeeae1d Fix bug #68095 - invalid read in php_getopt()
It's a hacky solution and incomplete, but I don't see other way
without refactoring the whole getopt protocol.
2014-10-27 19:06:44 -07:00
Bob Weinand 44079a0c82 Merge phpdbg into PHP-5.6 2014-10-27 14:07:26 +01:00
Bob Weinand 0ede82d466 Merge phpdbg into PHP-5.6 2014-10-27 14:07:26 +01:00
Bob Weinand 2297a9aa01 Fix resolving breakpoints of already loaded files 2014-10-27 13:55:20 +01:00
Bob Weinand 8b98ffea5f Never exist xml mode... 2014-10-27 13:27:54 +01:00
Bob Weinand 35d90d3858 Merge phpdbg into PHP-5.6
Conflicts:
	sapi/phpdbg/phpdbg.c
	sapi/phpdbg/phpdbg_prompt.c
2014-10-27 13:11:13 +01:00
Bob Weinand 6eab2b9101 Merge phpdbg into PHP-5.6
Conflicts:
	sapi/phpdbg/phpdbg.c
	sapi/phpdbg/phpdbg_prompt.c
2014-10-27 13:11:13 +01:00
Bob Weinand b4db856d37 Fix failing quit when quitting during execution 2014-10-27 11:02:08 +01:00
Bob Weinand 9139d031d8 Fix segfault when cleaning without execution context 2014-10-27 11:01:43 +01:00
Bob Weinand 5e8359d360 Fix listening on port 2014-10-27 10:49:16 +01:00
Anatol Belski 08684a9828 Merge branch 'master' of github.com:krakjoe/phpdbg
Conflicts:
	phpdbg_prompt.c
2014-10-27 10:19:59 +01:00
Anatol Belski 0e7987c61a improve the current sigio handling on win32 2014-10-27 10:08:58 +01:00
Remi Collet cc91072f0e NEWS 2014-10-27 07:51:50 +01:00
Remi Collet 0146505187 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fix bug #63595 GMP memory management conflicts with other libraries using GMP

Conflicts:
	ext/gmp/gmp.c
2014-10-27 07:50:42 +01:00
Remi Collet 88527e4569 NEWS 2014-10-27 07:47:18 +01:00
Remi Collet 3c925b18fa Fix bug #63595 GMP memory management conflicts with other libraries using GMP
Drop use of php memory allocators as this raise various conflicts
with other extensions and libraries which use libgmp.

No other solution found.
We cannot for ensure correct use of allocator with shared lib.

Some memory can allocated before php init
Some memory can be freed after php shutdown

Known broken run cases
- php + curl + gnutls + gmp
- mod_gnutls + mod_php + gnutls + gmp
- php + freetds + gnutls + gmp
- php + odbc + freetds + gnutls + gmp
- php + php-mapi (zarafa) + gnutls + gmp
2014-10-27 07:45:34 +01:00
Bob Weinand 50756b515c Do not execute anything after quit or clean command 2014-10-27 00:00:19 +01:00
Bob Weinand e7ddcbcb86 Do not execute anything after quit or clean command 2014-10-27 00:00:19 +01:00
Bob Weinand 190f4f9f18 Fix last commit, and do not output unnecessary information 2014-10-27 00:00:18 +01:00
Bob Weinand 26babfb357 Fix last commit, and do not output unnecessary information 2014-10-27 00:00:18 +01:00
Bob Weinand 3ab7734b88 Stabilize execution, always run destructors and extended file breakpoints 2014-10-27 00:00:16 +01:00
Bob Weinand 510676fbbf Stabilize execution, always run destructors and extended file breakpoints 2014-10-27 00:00:16 +01:00
Bob Weinand 69bc61de41 Fix nullptr dereference in clean without exec context 2014-10-27 00:00:15 +01:00
Bob Weinand af9c6afa6f Fix nullptr dereference in clean without exec context 2014-10-27 00:00:15 +01:00
krakjoe 41537cdddc remove dodgy param parser, bring userland breakpoint api inline with PHP7 2014-10-27 00:00:14 +01:00
krakjoe de656f8a49 remove dodgy param parser, bring userland breakpoint api inline with PHP7 2014-10-27 00:00:14 +01:00
krakjoe 51c1cc4ff5 disable output buffering by default 2014-10-27 00:00:14 +01:00
krakjoe fa3a01374d disable output buffering by default 2014-10-27 00:00:14 +01:00
Bob Weinand cc70ec1e67 Add question to reset execution in run/exec/clean 2014-10-27 00:00:13 +01:00
Bob Weinand 2bcc8d8394 Add question to reset execution in run/exec/clean 2014-10-27 00:00:13 +01:00
Bob Weinand f4748ff9ff Do not execute anything after quit or clean command 2014-10-26 23:33:54 +01:00
Bob Weinand 29edee4e70 Fix last commit, and do not output unnecessary information 2014-10-26 22:21:18 +01:00
Bob Weinand 05711d9961 Stabilize execution, always run destructors and extended file breakpoints 2014-10-26 20:43:49 +01:00
Derick Rethans 25e3560546 Merge branch 'PHP-5.5' into PHP-5.6 2014-10-26 10:54:09 -04:00
Derick Rethans 22b9f16e9a - Updated to version 2014.9 (2014i) 2014-10-26 10:54:07 -04:00
Bob Weinand 1ff04117c3 Fix nullptr dereference in clean without exec context 2014-10-26 10:48:45 +01:00
krakjoe 65eaab52b6 remove dodgy param parser, bring userland breakpoint api inline with PHP7 2014-10-26 07:24:35 +00:00
krakjoe 5feb96520a disable output buffering by default 2014-10-26 07:08:29 +00:00
Bob Weinand 918466c262 Add question to reset execution in run/exec/clean 2014-10-26 03:50:28 +01:00
Bob Weinand e4e39d852a Merge phpdbg into PHP-5.6 2014-10-25 18:59:48 +02:00
Bob Weinand 24babb0194 Merge phpdbg into PHP-5.6 2014-10-25 18:59:48 +02:00
Bob Weinand bbcee18b4b Fix phpdbg output when outputting via php with active output handlers 2014-10-25 18:48:43 +02:00
Bob Weinand be5242e0fe Set engine back to initial state after fatal-ed ev command 2014-10-25 15:29:54 +02:00
Bob Weinand e995ad1131 Fix eventual stack overflow after clean cmd 2014-10-25 15:28:41 +02:00
Bob Weinand b79e9044f9 Fix listing of files with no absolute path 2014-10-25 15:06:34 +02:00
Anatol Belski c1639b3e52 stdint will be included in the win32 variant, so don't do it twice 2014-10-25 13:01:17 +02:00
Anatol Belski 3794431b78 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  updated libmagic.patch in 5.5
2014-10-25 12:04:27 +02:00
Anatol Belski 7e5bd4ec69 updated libmagic.patch in 5.6 2014-10-25 12:03:49 +02:00
Anatol Belski 270df3ffd6 updated libmagic.patch in 5.5 2014-10-25 12:01:58 +02:00
Remi Collet e75e003ae4 NEWS 2014-10-25 11:30:53 +02:00
Remi Collet cefa310cf9 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fix bug #68283: fileinfo: out-of-bounds read in elf note headers
2014-10-25 11:30:29 +02:00
Remi Collet ec3d25fcbd NEWS 2014-10-25 11:29:53 +02:00
Remi Collet 5b295bf191 Fix bug #68283: fileinfo: out-of-bounds read in elf note headers
Upstream commit
https://github.com/file/file/commit/39c7ac1106be844a5296d3eb5971946cc09ffda0

CVE -2014-3710

(cherry picked from commit 1803228597)
2014-10-25 11:29:16 +02:00
Bob Weinand c03ac47baf Added some NEWS 2014-10-24 19:26:04 +02:00
Bob Weinand 062284e4fb Merge phpdbg into PHP-5.6 2014-10-24 19:22:45 +02:00
Bob Weinand 9b4d9ac6c7 Merge phpdbg into PHP-5.6 2014-10-24 19:22:45 +02:00
Bob Weinand 3639942891 Make xml valid (missing space between attrs) 2014-10-24 14:42:18 +02:00
Bob Weinand dc61a5c359 Fix info classes file name in xml 2014-10-24 14:29:06 +02:00
Bob Weinand 87c055e95e Add note about <eval> tag for errors in xml.md 2014-10-24 14:18:02 +02:00
Bob Weinand 9053b8a4d4 Name the tag <eval> if the error id during ev cmd 2014-10-24 14:16:49 +02:00
Bob Weinand b0089e3c2f Do not print out xml as PHP print... 2014-10-24 13:11:14 +02:00
Bob Weinand 9ce03bc7da Fix output to wrong function 2014-10-24 12:55:44 +02:00
Bob Weinand 56b3eda377 Fixed parameter order on %.*s 2014-10-24 12:32:48 +02:00
Bob Weinand 23a408a51b Too much copypaste... 2014-10-23 20:14:12 +02:00
Bob Weinand f025482678 Add xml formatted deep dump of return value from ev 2014-10-23 17:19:26 +02:00
Bob Weinand 28dcdb2d13 Fix some compiler warnings 2014-10-23 13:23:37 +02:00
Bob Weinand 6ee2dc47f3 Move phpdbg_print and helper functions to phpdbg_out.* 2014-10-23 13:16:00 +02:00
Bob Weinand 4a836ced7e Do not use int8_t when it is useless... 2014-10-23 13:02:50 +02:00
Bob Weinand 504448bce3 Fixed frame numbering in xml output 2014-10-23 12:38:35 +02:00
Bob Weinand d61a12799c Do not display dots in xml output for i v/i d 2014-10-23 12:23:48 +02:00
Stanislav Malyshev 4d54c4bdf0 fix NEWS & version 2014-10-22 13:16:29 -07:00
Bob Weinand 801080cf7e Try fixing 5.4 and 5.5 build, again 2014-10-22 19:58:52 +02:00
Remi Collet de4fff0fb3 NEWS 2014-10-22 15:39:49 +02:00
Remi Collet 1803228597 Fix bug #68283: fileinfo: out-of-bounds read in elf note headers
Upstream commit
https://github.com/file/file/commit/39c7ac1106be844a5296d3eb5971946cc09ffda0

CVE -2014-3710
2014-10-22 15:37:04 +02:00
Remi Collet 411984c0e9 NEWS 2014-10-22 15:27:21 +02:00
Remi Collet ef2a2fa3a1 Fix bug #68224 buffer-overflow in /ext/fileinfo/libmagic/readcdf.c caught by AddressSanitizer
Upstream commit
https://github.com/file/file/commit/f28fbb947e3aa55fc40b09820f59ebff6f66f213
2014-10-22 15:24:59 +02:00
Anatol Belski 242387e51b add comment 2014-10-21 17:43:23 +02:00
Anatol Belski d7229b2bb6 restart listening on socket
if remote sent somthing else than ctrl+c while performing something blocking
2014-10-21 16:56:06 +02:00
Anatol Belski b8368a7bcf some minor fixes 2014-10-21 16:19:31 +02:00
Anatol Belski 6fcf7ede49 added phpdbg_eol.* sources 2014-10-21 16:18:44 +02:00
Anatol Belski a741d3b266 basic EOL implementation for CRLF 2014-10-21 15:50:55 +02:00
Anatol Belski 0f3448ef8b start sigio watcher only for run and eval for now
there myght be more needing that
2014-10-21 11:47:22 +02:00
Anatol Belski 63a450281a reworked the current EOL stuff 2014-10-21 11:47:21 +02:00
Anatol Belski e011f0ca60 prepare setting EOL with command or INI 2014-10-21 11:47:20 +02:00
Anatol Belski 55936dc23d correct place to start the sigio watcher
plus started with the eol command
2014-10-21 11:47:19 +02:00
Anatol Belski da40b116a6 further improvements to windows/sigio 2014-10-21 11:47:18 +02:00
Anatol Belski 3dec59f00d basic sigio surrogate for windows 2014-10-21 11:47:17 +02:00
Bob Weinand bafe6a9f7a Always show the prompt (now also: <prompt> tag) 2014-10-20 22:05:05 +02:00
Bob Weinand dfdc19fb2a Fix off-by-one bug in text messages (msg/<phpdbg>) 2014-10-20 21:52:47 +02:00
Bob Weinand 27629577b0 Add xml.md info for info constants 2014-10-20 21:22:16 +02:00
Bob Weinand d410b23f90 Ensure that %.*s uses the full string (INCLUDING \0) 2014-10-20 21:17:45 +02:00
Bob Weinand 3e5a4c6f30 Add info constants (alias: i d) command 2014-10-20 21:14:13 +02:00
Bob Weinand 6c6b356f63 Add values of scalars to info vars/globals 2014-10-20 16:05:37 +02:00
Anatol Belski e0b247bc87 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  initialize lineno before calling compile file file in phar
  News entry for new curl constants
2014-10-20 15:54:33 +02:00
Anatol Belski 37d5a2b18f initialize lineno before calling compile file file in phar 2014-10-20 15:53:32 +02:00
Bob Weinand fa1c26f022 Fix for ports >= 1<<15 2014-10-20 09:47:35 +02:00
Bob Weinand 2916a14018 Fix reading from remote on some *nixes 2014-10-20 08:46:22 +02:00
Bob Weinand 07670ff871 Fix TSRMLS_* and a few warnings 2014-10-19 21:20:43 +02:00
Anatol Belski 795cb98ac6 revert PHP_EOL changes 2014-10-19 20:09:39 +02:00
Anatol Belski 362c87f4b0 don't use timeout for the remote prompt, recv() will block until input arrives 2014-10-19 18:30:07 +02:00
Anatol Belski 0acafba89d improve server sock creation and support ipv6 2014-10-19 13:40:45 +02:00
Anatol Belski 75bc207653 add comment 2014-10-19 11:16:56 +02:00
Anatol Belski 0929b7a4e4 increase default recv timeout to 30 seconds 2014-10-19 11:16:01 +02:00
Anatol Belski 2be895e4fe more EOL fixes 2014-10-19 11:10:13 +02:00
Anatol Belski 52686b3226 use MSG_PEEK flag for recv() everywhere 2014-10-19 11:03:17 +02:00
Anatol Belski e853fec3fd fixed EOL transferred to the client side, fixed strftime fmt string
the windows telnet gets broken output when receiving no '\r'
2014-10-19 10:39:44 +02:00
Anatol Belski d5fb8e5830 increase stack to avoid overflow crash on SIGINT
but should actually check, maybe something is causing a recursive
stack exhaustion
2014-10-19 02:14:31 +02:00
Anatol Belski 1137d9cb2b several fixes to the new io stuff 2014-10-19 01:32:46 +02:00
Anatol Belski 52d2ead59d override stdin and stdout to be remote, stderr is untouched however
is this ok? some functions want to write a log there ...
2014-10-19 01:31:00 +02:00
Anatol Belski 47388e6362 move these to use the mixed read/write routines 2014-10-19 01:30:00 +02:00
Anatol Belski dd551706a9 add basic stuff to generalize IO 2014-10-19 00:12:23 +02:00
Anatol Belski 0cfd77185b enable php_stdiop_write for windows
yet it's unclear whether it'll be usable, but otherwise it breaks
compilation as some places depend on it
2014-10-18 22:59:49 +02:00
Anatol Belski 3af83e196c export functions needed for phpdbg 2014-10-18 22:55:14 +02:00
Anatol Belski 3ca381ee8b fix dll export 2014-10-18 22:45:17 +02:00
Anatol Belski f67bd30131 C89 compat 2014-10-18 22:43:56 +02:00
Bob Weinand 8525c40eac Fix for 5.4/5.5 2014-10-18 21:54:44 +02:00
Bob Weinand 6932bbfd52 Merge branch 'xml-protocol'
Conflicts:
	phpdbg.c
	phpdbg_list.c
2014-10-18 21:12:25 +02:00
Bob Weinand bdb18d9f48 Fix execution of immediately following commands 2014-10-18 20:42:54 +02:00
Bob Weinand 24972fa986 Fixed potential segfault in backtrace of internal funcs 2014-10-17 22:20:54 +02:00
Bob Weinand f0e67720d4 Remove accidentally added null-byte in attributes 2014-10-17 19:39:09 +02:00
Bob Weinand afe01e4956 Fix negative list offsets 2014-10-17 19:32:02 +02:00
Matteo Beccati 8c5e2e66bc Fixed bug #68199 (PDO::pgsqlGetNotify doesn't support NOTIFY payloads) 2014-10-17 16:22:52 +02:00
Rasmus Lerdorf d748c9f990 News entry for new curl constants 2014-10-16 21:38:19 -07:00
Rasmus Lerdorf 8c9e254319 News entry for new curl constants 2014-10-16 21:36:53 -07:00
Rasmus Lerdorf 5606466624 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  TLS 1.0, 1.1 and 1.2 Curl constants - bug #68247
2014-10-16 21:28:20 -07:00
Rasmus Lerdorf 0d27b3ea69 Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6
* 'PHP-5.6' of git.php.net:php-src: (129 commits)
  NEWS
  cleanup NEWS
  removing the NEWS entry as we had to revert this fix for now
  Revert "Merge branch 'PHP-5.5' into PHP-5.6"
  Revert "fix TS build"
  Revert "Merge branch 'PHP-5.4' into PHP-5.5"
  Revert "Bug #67965: Fix blocking behavior in non-blocking crypto streams"
  Revert "Bug #41631: Fix regression from first attempt (6569db8)"
  NEWS
  Fixed Bug #65171 imagescale() fails
  Fixed bug #68234
  Revert "Bug #41631: Observe socket read timeouts in SSL streams"
  PHP-5.6.3 is next
  update NEWS, 5.6.2 will be a security-only release
  Fix return code (merges are hard :( )
  Fix bug #68113 (Heap corruption in exif_thumbnail())
  Fix bug #68089 - do not accept options with embedded \0
  Fixed bug #68044: Integer overflow in unserialize() (32-bits only)
  Fix bug #68027 - fix date parsing in XMLRPC lib
  Fix bug #68113 (Heap corruption in exif_thumbnail())
  ...
2014-10-16 21:27:49 -07:00
Rasmus Lerdorf 2b5bffe6c7 TLS 1.0, 1.1 and 1.2 Curl constants - bug #68247 2014-10-16 21:25:29 -07:00
Bob Weinand a80f0b982a Fix lexing of -r \d+ in raw-string commands 2014-10-16 12:27:26 +02:00
Bob Weinand 68694e3141 Fix invalid dereference 2014-10-16 11:04:45 +02:00
Bob Weinand 22f1c8a062 Fix segfault in exceptions with xml 2014-10-15 22:00:33 +02:00
Bob Weinand b28e3d01d7 Fix ctrl characters handling 2014-10-15 20:30:16 +02:00
Remi Collet a3beb42ded NEWS 2014-10-15 19:49:22 +02:00
Remi Collet 3d9f460313 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  cleanup NEWS
2014-10-15 19:48:25 +02:00
Remi Collet a1abdba1eb cleanup NEWS 2014-10-15 19:47:55 +02:00
Ferenc Kovacs cfa1028d7e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fixed Bug #65171 imagescale() fails
  Revert "Bug #41631: Observe socket read timeouts in SSL streams"

Conflicts:
	ext/openssl/xp_ssl.c
2014-10-15 19:42:51 +02:00
Ferenc Kovacs 2109f5bfe3 removing the NEWS entry as we had to revert this fix for now 2014-10-15 19:36:13 +02:00
Ferenc Kovacs feadaaed56 Revert "Merge branch 'PHP-5.5' into PHP-5.6"
This reverts commit 98e67add15, reversing
changes made to 2cdc1a2b74.
2014-10-15 19:34:07 +02:00
Ferenc Kovacs 4fb998d42f Revert "fix TS build"
This reverts commit 84a4041ba4.
2014-10-15 19:33:47 +02:00
Ferenc Kovacs 7b8222aa44 Revert "Merge branch 'PHP-5.4' into PHP-5.5"
This reverts commit 30a73658c6, reversing
changes made to 7fac56e072.
2014-10-15 19:33:31 +02:00
Ferenc Kovacs 528e4166a6 Revert "Bug #67965: Fix blocking behavior in non-blocking crypto streams"
This reverts commit f86b2193a4.
2014-10-15 19:32:46 +02:00
Ferenc Kovacs ff91a48f6e Revert "Bug #41631: Fix regression from first attempt (6569db8)"
This reverts commit 372844918a.
2014-10-15 19:32:14 +02:00
Remi Collet 503f8193e8 NEWS 2014-10-15 19:16:45 +02:00
Remi Collet 2728e6f017 Fixed Bug #65171 imagescale() fails
Third param (height) is set as optional,
but default value = -1 is incorrect

Compute correct height to preserve ratio.
2014-10-15 19:13:25 +02:00
Tjerk Meesters 836a5dfddb Fixed bug #68234
Certificate will now expire in 2034
2014-10-15 21:12:13 +08:00
Julien Pauli 6d9c9f8f04 Revert "Bug #41631: Observe socket read timeouts in SSL streams"
This reverts commit 6569db8808.

Conflicts:
	ext/openssl/xp_ssl.c
2014-10-15 14:38:12 +02:00
Ferenc Kovacs 646b4cca85 PHP-5.6.3 is next 2014-10-15 14:08:32 +02:00
Ferenc Kovacs b85b87fabc update NEWS, 5.6.2 will be a security-only release 2014-10-15 14:07:40 +02:00
Stanislav Malyshev 47a1447cc8 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix return code (merges are hard :( )
2014-10-14 11:43:34 -07:00
Stanislav Malyshev bb3d43fa05 Fix return code (merges are hard :( ) 2014-10-14 11:42:33 -07:00
Stanislav Malyshev 3e4cef131e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #68113 (Heap corruption in exif_thumbnail())
  Fix bug #68089 - do not accept options with embedded \0
  Fixed bug #68044: Integer overflow in unserialize() (32-bits only)
  Fix bug #68027 - fix date parsing in XMLRPC lib
2014-10-14 10:45:47 -07:00
Stanislav Malyshev f9ba0a157f Fix bug #68113 (Heap corruption in exif_thumbnail()) 2014-10-14 10:45:36 -07:00
Stanislav Malyshev 71b63fc701 Fix bug #68089 - do not accept options with embedded \0
Conflicts:
	ext/curl/interface.c
2014-10-14 10:45:35 -07:00
Stanislav Malyshev 88eb7ea47d Fixed bug #68044: Integer overflow in unserialize() (32-bits only) 2014-10-14 10:44:57 -07:00
Stanislav Malyshev 2142d78281 Fix bug #68027 - fix date parsing in XMLRPC lib 2014-10-14 10:44:39 -07:00
Stanislav Malyshev ddb207e7fa Fix bug #68113 (Heap corruption in exif_thumbnail()) 2014-10-14 10:44:00 -07:00
Stanislav Malyshev d1e030db02 Fix bug #68089 - do not accept options with embedded \0
Conflicts:
	ext/curl/interface.c
2014-10-14 10:43:59 -07:00
Stanislav Malyshev 9aa9014523 Fixed bug #68044: Integer overflow in unserialize() (32-bits only) 2014-10-14 10:43:13 -07:00
Stanislav Malyshev 44035de79f Fix bug #68027 - fix date parsing in XMLRPC lib 2014-10-14 10:43:12 -07:00
Tjerk Meesters fb35d7c56e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #68128
2014-10-14 22:50:07 +08:00
Tjerk Meesters 71ba533640 Fixed bug #68128
Three issues are addressed:

- RecursiveRegexIterator::accept() should accept non-empty arrays without
  applying any regular expression and RegexIterator::accept() should not accept
  an array.
- RegexIterator::accept() should not accept an atom that fails to match
  anything, even when PREG_PATTERN_ORDER is used (which would return an array
  of empty arrays).
- RecursiveRegexIterator::getChildren() should pass all constructor arguments
  to its child iterator instead of just the regular expression.
2014-10-14 22:49:01 +08:00
Stanislav Malyshev 4773c1dfdc update NEWS and UPGRADING 2014-10-14 00:36:36 -07:00
Stanislav Malyshev 8615e42942 Merge branch 'pull-request/839' into PHP-5.6
* pull-request/839:
  Upated NEWS
  Address issues raised by @nikic
  Make sure min < max
  Mersenne Twister was added in GMP 4.2
  Add test files
  Add gmp_random_bits(bits) and gmp_random_range(min, max)
  Change GMPs default PRNG to Mersenne Twister
2014-10-14 00:33:16 -07:00
Bob Weinand c812ee9c35 Fix invalid efree() on null pointer and add help for -x 2014-10-14 09:16:30 +02:00
Stanislav Malyshev 287c91c1f0 Fix bug #68113 (Heap corruption in exif_thumbnail()) 2014-10-13 23:17:45 -07:00
Stanislav Malyshev ab0939e5e5 Fix bug #68089 - do not accept options with embedded \0
Conflicts:
	ext/curl/interface.c
2014-10-13 23:16:06 -07:00
Stanislav Malyshev 56754a7f9e Fixed bug #68044: Integer overflow in unserialize() (32-bits only) 2014-10-13 23:14:25 -07:00
Stanislav Malyshev 88412772d2 Fix bug #68027 - fix date parsing in XMLRPC lib 2014-10-13 23:12:11 -07:00
Dmitry Stogov 7acba332fe We can't eliminate FETCH_CONSTANT opcodes for constants represented by AST. 2014-10-13 14:07:37 +04:00
Anatol Belski 449fd307e4 enable console options for remote on win 2014-10-12 20:05:26 +02:00
Anatol Belski d5ce62c17c basic rework for remote on win 2014-10-12 19:53:05 +02:00
Anatol Belski a5607c4b5a fix config.w32 2014-10-12 19:31:38 +02:00
Anatol Belski c96a6b4493 DLL export several APIs needed for phpdbg 2014-10-12 19:22:03 +02:00
Tjerk Meesters 37a685ff2b More fixes for nodelist array access
- testing for null property read
- no zval copying if the type is already long
- memory fix for master
2014-10-12 12:47:58 +08:00
Bob Weinand 1486a9ebf7 Fix some compiler warnings 2014-10-12 00:30:09 +02:00
Bob Weinand e19c789979 Maybe-fix for krakjoe/phpdbg#120, fixed remote on darwin 2014-10-11 23:36:12 +02:00
Bob Weinand 3445e0e59e Fix issue krakjoe/phpdbg#122 (segfault in helpaliases) 2014-10-11 00:20:30 +02:00
Ard Biesheuvel 3e13c6dcb2 update NEWS
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2014-10-10 11:45:24 +02:00
Ard Biesheuvel 8aa952410a Merge branch 'PHP-5.5' into PHP-5.6 2014-10-10 11:44:52 +02:00
Ard Biesheuvel b73ef0ee4a update NEWS
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2014-10-10 11:44:39 +02:00
Ard Biesheuvel c2cce33cba Merge branch 'PHP-5.4' into PHP-5.5 2014-10-10 11:41:10 +02:00
Ard Biesheuvel 82b07b62c0 update NEWS
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2014-10-10 11:40:07 +02:00
Tjerk Meesters a88feb139c Added note to UPGRADING regarding 64-bit support in pack()/unpack() 2014-10-10 07:33:06 +08:00
Tjerk Meesters 30f8a9baff RFC: 64 bit format codes for pack() and unpack() 2014-10-10 07:00:38 +08:00
Leigh 63fd969300 Add 64 bit formats to pack() and unpack() 2014-10-09 21:02:42 +01:00
Tjerk Meesters 59f39dea66 Refactored DOMNodeList array dereferencing implementation 2014-10-09 23:07:12 +08:00
Bob Weinand 9dfc5d5511 Escape control characters 2014-10-09 16:06:10 +02:00
Bob Weinand e72b00b1ec Only show req attribute if given 2014-10-09 14:54:47 +02:00
Bob Weinand f4f9e39faa Fix ev/run/sh parsing 2014-10-09 14:54:08 +02:00
Bob Weinand 0bcb32ae47 Fixed segfault when listing and last line is empty
Conflicts:
	phpdbg_list.c
2014-10-09 12:51:04 +02:00
Bob Weinand a54de936d0 Fixed segfault when listing and last line is empty 2014-10-09 12:43:53 +02:00
Bob Weinand 31b6024c65 Updated xml.md 2014-10-09 12:35:54 +02:00
Bob Weinand a7918213e7 Always output request id in containers 2014-10-09 12:24:52 +02:00
Bob Weinand eeafa4e518 Merge branch 'master' into xml-protocol 2014-10-09 12:01:43 +02:00
Bob Weinand ca7f2f5f43 Ports are unsigned short, use unsigned to display 2014-10-09 12:01:25 +02:00
Bob Weinand b426897c9c Fix regression in list
It showed the entire remaining file before...
2014-10-09 11:52:57 +02:00
Bob Weinand 96de7c4b0a Reduce variabledetails+variable to just one variable tag 2014-10-09 11:47:52 +02:00
Tjerk Meesters 72bd28a5da Updated NEWS for #67949 2014-10-09 16:18:14 +08:00
Tjerk Meesters 8a3b41cd39 Merge branch 'pr/846' into PHP-5.6
* pr/846:
  DOMNodeList elements are accessible through array notation
2014-10-09 15:55:10 +08:00
Tjerk Meesters cac55bad1a Updated NEWS for #68129 2014-10-09 08:24:30 +08:00
Tjerk Meesters f92c9b3ced Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Updated NEWS for #68129
  Fixed bug #68129
2014-10-09 08:24:05 +08:00
Tjerk Meesters 061cb9b807 Updated NEWS for #68129 2014-10-09 08:23:42 +08:00
Tjerk Meesters d0e51f5ce9 Fixed bug #68129
Empty usernames and passwords are now treated differently from no username or password

For example, empty password:

    ftp://user:@example.org

Empty username:

    ftp://:password@example.org

Empty username and empty password

    ftp://:@example.org
2014-10-09 08:21:30 +08:00
Bob Weinand 9db6a93b69 Add <intros> tag around <intro /> tags 2014-10-09 00:25:25 +02:00
Bob Weinand 07bbe62742 Put stack_verify in error buffer too 2014-10-08 23:44:22 +02:00
Bob Weinand fa89d8b3f9 Fix escaping of < 2014-10-08 23:42:20 +02:00
Dmitry Stogov aec519199b Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Added info about ext/opcache
2014-10-08 21:49:53 +04:00
Dmitry Stogov 09f9403a6e Added info about ext/opcache 2014-10-08 21:48:44 +04:00
Bob Weinand 0ef8b4caf3 Revert WS change from "[\r\n\t ]+" to "[\t ]+" 2014-10-08 00:35:17 +02:00
Bob Weinand 89a0d3c2b2 Merge branch 'master' into xml-protocol
Conflicts:
	phpdbg_lexer.c
	phpdbg_prompt.c
2014-10-08 00:27:12 +02:00
Bob Weinand eabcdb2eb2 Fix bug which causes inf loop on \r\n 2014-10-08 00:15:21 +02:00
Keyur Govande 3bd8ac6710 Add to NEWS 2014-10-07 21:22:54 +00:00
Keyur Govande 92f108801e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Add to NEWS
  Fix for bug #68087 (ODBC not reading DATE columns correctly)
2014-10-07 21:22:07 +00:00
Keyur Govande d319a0c1d8 Add to NEWS 2014-10-07 21:21:23 +00:00
Keyur Govande df9078ea55 Fix for bug #68087 (ODBC not reading DATE columns correctly)
Temporary variable indicating column field type ID should be
reset to default for loop iteration (i.e. every column in the
record set. The old buggy code made it persist across all columns
leading to invalid reads from the buffer, if for example a DATE
column was preceded by a VARCHAR column.
2014-10-07 21:17:36 +00:00
Keyur Govande 6f634ebb8c Add to NEWS 2014-10-07 21:09:47 +00:00
Keyur Govande bcda6c9392 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Add to NEWS
  Fix for bug #68114 (Build fails on OS X due to undefined symbols)
2014-10-07 21:08:18 +00:00
Keyur Govande d21602c072 Add to NEWS 2014-10-07 21:07:19 +00:00
Keyur Govande 648673bffe Fix for bug #68114 (Build fails on OS X due to undefined symbols)
gcc (i686-apple-darwin10-gcc-4.2.1) on OS X cannot link fixed-width
decimals and fails with undefined symbols errors like ___extendsddf.
If configure used gcc for compiling it would notice and mark the
feature HAVE_DECIMAL_FP_SUPPORT as unsupported.
But configure seems to use cc (i686-apple-darwin10-llvm-gcc-4.2)
instead, which doesn't support fixed-width decimals either, but the
code compiles and links just fine. I suspect it may have something
to do with the llvm backend printed in the version.
Lacking the time to debug this further, the patch fixes the issue by
checking the expected output when fixed-width decimal support is
present and correctly implemented.
2014-10-07 20:58:43 +00:00
Leigh 106fab00bc Upated NEWS 2014-10-07 14:28:02 +01:00
Leigh aa679295e4 Merge branch 'PHP-5.6' of https://github.com/php/php-src into gmp-random 2014-10-07 14:25:44 +01:00
krakjoe 4b3a11debb make build work moar 2014-10-07 12:36:03 +01:00
Bob Weinand 8bc2881260 Merge branch 'master' into xml-protocol
Conflicts:
	phpdbg.c
	phpdbg.h
	phpdbg_cmd.c
	phpdbg_cmd.h
	phpdbg_frame.c
	phpdbg_info.c
	phpdbg_list.c
	phpdbg_print.c
	phpdbg_prompt.c
	phpdbg_utils.c
	phpdbg_utils.h
	phpdbg_watch.c
2014-10-07 13:08:30 +02:00
krakjoe f545ef48eb fix case insensitivity for registered functions 2014-10-07 11:30:26 +01:00
krakjoe 556ed2d3f4 fix mistake in help 2014-10-07 10:28:21 +01:00
Bob Weinand 6f584e22fe Merge branch 'webdata_transfer' 2014-10-07 00:45:29 +02:00
Bob Weinand 2422c70c4f &quot; => &amp;quot; in md document 2014-10-06 22:34:41 +02:00
Bob Weinand 699497e99f Add request id to <backtrace> 2014-10-06 13:20:04 +02:00
Bob Weinand abd75ea2c5 Fix frames output 2014-10-06 11:46:39 +02:00
Bob Weinand fb76316819 Add request_id possibility for xml output 2014-10-06 11:26:08 +02:00
Bob Weinand 8b6d707df0 Use PHP 5.4 compatible zend_execute in #if 2014-10-05 13:57:35 +02:00
Bob Weinand 2f6317c483 Fix infinite recursion issues (segfaults) 2014-10-05 13:33:31 +02:00
Bob Weinand 38e981bbdc Fix infinite recursion issues (segfaults) 2014-10-05 13:29:56 +02:00
Bob Weinand bedd503c3f Consistency in breakpoint tags, <run> => <stop> 2014-10-05 12:33:24 +02:00
Bob Weinand 9cc73b5c75 Fix precision handling in strings 2014-10-05 11:57:14 +02:00
Bob Weinand c55dbad546 Disable automatic resetting of imported auto_globals 2014-10-05 02:27:51 +02:00
Bob Weinand f48fc67c86 Fix (system) ini entry transfer 2014-10-05 00:16:19 +02:00
Bob Weinand 62465b6d82 Fix issues with path names and cwd 2014-10-04 23:30:57 +02:00
Bob Weinand 19cdad194b Add transfer of output back to webserver and merge master in
Conflicts:
	config.m4
	phpdbg.c
	phpdbg.h
	phpdbg_cmd.c
	phpdbg_prompt.c
2014-10-04 23:21:34 +02:00
Johannes Schlüter 79ca53b62b Merge branch 'PHP-5.5' into PHP-5.6 2014-10-04 20:06:44 +02:00
Johannes Schlüter b386991471 Fix accidental edit in previous commit 2014-10-04 20:06:02 +02:00
Johannes Schlüter 61d29990b4 Merge branch 'PHP-5.5' into PHP-5.6 2014-10-04 20:00:10 +02:00
Johannes Schlüter 136dd53ac2 Fix arginfo 2014-10-04 19:59:21 +02:00
Bob Weinand 9d96cde268 LIBREADLINE => HAVE_LIBREADLINE 2014-10-04 17:02:44 +02:00
Derick Rethans 0e5f475f5e Merge branch 'PHP-5.5' into PHP-5.6 2014-10-04 15:59:17 +01:00
Derick Rethans 0874ef624c Merge branch 'PHP-5.4' into PHP-5.5 2014-10-04 15:58:40 +01:00
Florian MARGAINE 046c345de5 DateTimeZone::getOffset() now accepts a DateTimeInterface
Fixes #68062
2014-10-04 15:58:24 +01:00
Bob Weinand 490aa1f984 Use or instead of and for libedit and readline 2014-10-04 16:31:34 +02:00
George Wang 0e18003374 Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6 2014-10-03 16:43:35 -04:00
George Wang ef0eed7f5f Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5 2014-10-03 16:43:08 -04:00
George Wang 5b08e56eca Fixed a bug that causes crash when environment variable is access while parsing php.ini 2014-10-03 16:42:27 -04:00
George Wang 0cc2600ec6 Fixed a bug that causes crash when environment variable is access while parsing php.ini 2014-10-03 16:42:15 -04:00
George Wang 26ff3a4c1e Fixed a bug that causes crash when environment variable is access while parsing php.ini 2014-10-03 16:41:32 -04:00
Nikita Popov 56da3638c4 Merge branch 'PHP-5.5' into PHP-5.6 2014-10-03 21:42:28 +02:00
Nikita Popov d67c05bb89 Fix bug number 2014-10-03 21:41:58 +02:00
Nikita Popov 8617f2fa8d Merge branch 'PHP-5.5' into PHP-5.6 2014-10-03 21:27:07 +02:00
Nikita Popov 93288d0095 Fix bug #68188 2014-10-03 21:26:39 +02:00
Bob Weinand 323e59adfc Added support for a restricted ev (variables only) in async safe contexts 2014-10-03 12:43:32 +02:00
Ferenc Kovacs 79e05bf557 NEWS entry for previous commit 2014-10-03 11:39:53 +02:00
Ferenc Kovacs 200e407b24 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS entry for previous commit
  add IPv6 support to php-fpm
2014-10-03 11:39:09 +02:00
Ferenc Kovacs 25e65a7599 NEWS entry for previous commit 2014-10-03 11:38:32 +02:00
Robin Gloster 15ba757a2b add IPv6 support to php-fpm 2014-10-03 11:35:27 +02:00
Sara Golemon f41a7b926a Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Add hash to EXTENSIONS file
2014-10-02 18:55:29 -07:00
Sara Golemon 2cf94189a2 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Add hash to EXTENSIONS file
2014-10-02 18:55:14 -07:00
Sara Golemon 4e7b31a0db Add hash to EXTENSIONS file 2014-10-02 18:54:46 -07:00
Bob Weinand 8af0870d72 Made some functions async safe and provide interactive shell in signal handler
Fixes also (as a side-effect) a possible bug in list function when included files become unreachable after loading by caching the file contents
This is already pretty stable; a (restricted) ev and sh may follow.
2014-10-03 01:29:41 +02:00
Ferenc Kovacs 7a529790b2 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  we also have xz release tarballs since 5.5
  5.5.19 now

Conflicts:
	configure.in
	main/php_version.h
2014-10-02 22:32:18 +02:00
Ferenc Kovacs d7b01aff89 we also have xz release tarballs since 5.5 2014-10-02 22:28:19 +02:00
Bob Weinand 7911b6405c Remove accidental insertion of a single "s" 2014-10-02 11:18:36 +02:00
Julien Pauli cfe8a8b968 5.5.19 now 2014-10-01 16:16:05 +02:00
Ferenc Kovacs 26f4e40622 update NEWS about the release date of 5.6.1 2014-10-01 11:15:59 +02:00
Remi Collet 3e6f176733 only no_NO.ISO-8859-1 have to be ignored 2014-10-01 10:14:14 +02:00
krakjoe 7cbd8f8b8a remove bogus locale use from test 2014-10-01 10:12:06 +02:00
Remi Collet f584b67eaa Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  use $PHP_LIBDIR instread of "lib" in skel example
2014-10-01 09:26:46 +02:00
Remi Collet 7319298ffe use $PHP_LIBDIR instread of "lib" in skel example 2014-10-01 09:26:21 +02:00
Paulo Eduardo 17759439d7 Test PHP Init Fail Without Params 2014-09-30 08:56:46 -03:00
Anatol Belski df4d559881 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix test filename
2014-09-29 20:30:43 +02:00
Anatol Belski 7f1239232e fix test filename 2014-09-29 20:30:18 +02:00
Anatol Belski cc3849f039 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  one more test to illustrate transfer of an arbitrary data amount throug pipes
2014-09-29 20:19:31 +02:00
Anatol Belski 1a2a8c6d4e one more test to illustrate transfer of an arbitrary data amount throug pipes 2014-09-29 20:18:33 +02:00
Anatol Belski 70ff3ad7d1 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix tests on linux
  better test cleanup
2014-09-29 18:12:56 +02:00
Anatol Belski 859913f6d4 fix tests on linux 2014-09-29 18:12:25 +02:00
Anatol Belski 91d3cd8559 better test cleanup
and even force the XFAIL to fail as it would take too long anyway, even if it passes
2014-09-29 18:11:06 +02:00
Anatol Belski 231a311ecb Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  increase the polling period to not to break existing behaviours
2014-09-29 17:28:27 +02:00
Anatol Belski 46aa2c396b increase the polling period to not to break existing behaviours 2014-09-29 17:27:24 +02:00
Anatol Belski 7e16bb263f updated NEWS 2014-09-29 16:28:12 +02:00
Anatol Belski 87a37f4090 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #51800 proc_open on Windows hangs forever
2014-09-29 16:27:33 +02:00
Anatol Belski 0c982798e0 Fixed bug #51800 proc_open on Windows hangs forever
This loop can block for some minutes, theoretically. Practially
however, this is a 99% non issue for a normal use case. This is
required because read() is synchronous. The PHP streams API wants
to fill its internal buffers, therefore it might try to read some
more data than user has demanded. Also, for a case where we want
to read X bytes, but neither enough data nor EOF arrives, read()
will block until it could fill the buffer. If a counterpart station
runs slowly or delivers not all the data at once, read() would
still be waiting. If we quit too early, we possibly could loose
some data from the pipe. Thus it has to emulate the read()
behaviour, but obviously not completely, just to some grade.

Reading big data amount is for sure an issue on any platforms, it
depends on the pipe buffer size, which is controlled by the system.
On Windows, the buffer size seems to be way too small, which causes
buffer congestion and a dead lock. It is essential to read the pipe
descriptors simultaneously and possibly in the same order as the
opposite writes them.

Thus, this will work with smaller buffer data sizes passed through
pipes. As MSDN states, anonymous pipes don't support asynchronous
operations. Neither anonymous pipes do support select() as they are
not SOCKETs but file descriptors. Consequently - bigger data sizes
will need a better solution based on threads. However it is much
more expencive. Maybe a better solution could be exporting a part
of the internal doing as a userspace function which could perform
some kind of lookahead operation on the pipe descriptor.

This is just the first stone, depending on the user feedback we
might go for further improvements in this area.
2014-09-29 16:24:34 +02:00
Pedro MFA Evangelista 2c6ecbbea1 Add my information to this test 2014-09-28 23:25:47 -03:00
Pedro MFA Evangelista 8cd23d49db Add a test for the exception cases of readline_read_history 2014-09-28 23:25:47 -03:00
Rodrigo Prado de Jesus d89b1dad8a added some tests to datetime and dateinterval functions 2014-09-28 20:30:52 -03:00
Rodrigo Prado de Jesus 813830e763 added various tests for XSLTProcessor and one test for iconv extension 2014-09-28 20:29:29 -03:00
Rodrigo Wanderley de Melo Cardoso c0b83ba2be teste basico da funcao timezone_version_get 2014-09-28 19:03:32 -03:00
Stanislav Malyshev a8e84b1b21 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Set an LDAP error code when failing ldap_bind due to null bytes
2014-09-28 12:25:49 -07:00
Stanislav Malyshev ef39f40445 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Set an LDAP error code when failing ldap_bind due to null bytes
2014-09-28 12:25:24 -07:00
Matthew Daley fcbe20d357 Set an LDAP error code when failing ldap_bind due to null bytes
Some applications check a LDAP link's error code after seeing ldap_bind
fail due to a null byte bind attempt and hence incorrectly receive the
last set error code.

Fix by setting an LDAP error code before returning in this case.
2014-09-28 12:23:52 -07:00
Bob Weinand b183494f37 Send a \x03 during execution to interrupt (POSIX only) 2014-09-28 02:57:12 +02:00
Johannes Schlüter 16b4167fdd Merge branch 'PHP-5.5' into PHP-5.6 2014-09-27 02:18:29 +02:00
Johannes Schlüter e6105ffb22 Merge branch 'PHP-5.4' into PHP-5.5 2014-09-27 02:17:52 +02:00
Johannes Schlüter 2711948d14 This test should pass 2014-09-27 02:17:26 +02:00
Florian MARGAINE 9469db9311 DOMNodeList elements are accessible through array notation
Fixes #67949
2014-09-27 01:27:46 +02:00
Derick Rethans 71c39612d5 Merge branch 'PHP-5.5' into PHP-5.6 2014-09-26 16:27:05 +01:00
Derick Rethans 5d299509b4 Merge branch 'PHP-5.4' into PHP-5.5 2014-09-26 16:27:00 +01:00
Derick Rethans 16e2d954fc - Updated to version 2014.8 (2014h) 2014-09-26 16:26:59 +01:00
Stanislav Malyshev b465f00d42 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix date
  update NEWS
  Revert xp_ssl.c to the state of 5.4.32 due to regressions
2014-09-26 01:01:39 -07:00
Stanislav Malyshev 00e99dcafd Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  update NEWS
  Revert xp_ssl.c to the state of 5.4.32 due to regressions

Conflicts:
	ext/openssl/xp_ssl.c
2014-09-26 01:00:20 -07:00
Stanislav Malyshev 2bfe92c90f fix date 2014-09-26 00:56:39 -07:00
Stanislav Malyshev 28ed0119ac update NEWS 2014-09-26 00:55:49 -07:00
Stanislav Malyshev 408b172017 Revert xp_ssl.c to the state of 5.4.32 due to regressions 2014-09-26 00:44:24 -07:00
Remi Collet d19356948a NEWS 2014-09-26 09:07:12 +02:00
Remi Collet 97cab239d7 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fixed bug #68103 Dupplicate entry in Reflection
2014-09-26 09:06:51 +02:00
Remi Collet bf046d6d66 NEWS 2014-09-26 09:06:12 +02:00
Remi Collet efa7f87de4 Fixed bug #68103 Dupplicate entry in Reflection
$ php -r '$r=new ReflectionExtension("pthreads"); print_r($r->getClassNames());'
Array
(
    [0] => Threaded
    [1] => stackable
    [2] => Thread
    [3] => Worker
    [4] => Mutex
    [5] => Cond
    [6] => Collectable
    [7] => Pool
)

In getClasses() output, it is possible to compare key (ex "stackable")
with $obj->name (ex "Threaded") to detect class alias.

...
    [Threaded] => ReflectionClass Object
        (
            [name] => Threaded
        )
    [stackable] => ReflectionClass Object
        (
            [name] => Threaded
        )
...
2014-09-26 08:56:42 +02:00
Bob Weinand aeb7508959 Fix typo: inactivee => inactive 2014-09-25 22:01:31 +02:00
Bob Weinand 6e698f1fa5 Push first draft of xml protocol documentation 2014-09-25 21:26:57 +02:00
Bob Weinand 7beb17f2fd Make set commands more consistent 2014-09-25 21:25:18 +02:00
Bob Weinand 1ad0287499 Make phpdbg_prompt.c xml messages more consistent 2014-09-25 15:28:25 +02:00
Bob Weinand c30c40c359 Make print command xml output more consistent 2014-09-25 02:04:12 +02:00
Bob Weinand 5ba53cac06 Fix tests 2014-09-25 01:29:08 +02:00
Bob Weinand 67787d7b6d Merge branch 'master' into xml-protocol
Conflicts:
	phpdbg_utils.c
2014-09-25 01:22:33 +02:00
Bob Weinand a4c4c3593b Fix test after adding script ended notice 2014-09-25 00:59:17 +02:00
Bob Weinand 2bd1a74690 Always add a newline before a warning or a notice 2014-09-25 00:55:17 +02:00
Bob Weinand abafb7b4f9 Better naming in list command and inform about filename 2014-09-25 00:22:58 +02:00
Bob Weinand 9bd171888b Use more consistent naming in info command for xml protocol 2014-09-25 00:21:27 +02:00
Leigh adf8f0f284 Address issues raised by @nikic
- Thread safety on rand init function.
 - Ret false on validation failure
 - Add _dep of temp_a to temp_b
 - Special case int sized min values
 - More tests!
2014-09-24 22:01:09 +01:00
Ferenc Kovacs d27f3e7b64 update the certificate used for the test, as it expired recently 2014-09-24 13:40:52 +02:00
Remi Collet 44921ca75d typo 2014-09-24 10:42:20 +02:00
Remi Collet 8d2de21b1c NEWS 2014-09-24 10:36:29 +02:00
Remi Collet 0d776ef87b Fix bug #68074 Allow to use system cipher list instead of hardcoded value 2014-09-24 10:34:55 +02:00
Ferenc Kovacs 213d9ee62d the order of the blocks should be Core, then exts in alphabetical order 2014-09-24 09:40:52 +02:00
Ferenc Kovacs 8673394ecc add missing NEWS entry for the phpdbg compilation fix 2014-09-24 09:39:14 +02:00
Ferenc Kovacs 60dda65306 add NEWS entry for #68088 2014-09-24 09:09:34 +02:00
Leigh 3e9a31748d Make sure min < max 2014-09-24 07:56:46 +01:00
Leigh acd7fcf55f Mersenne Twister was added in GMP 4.2 2014-09-23 23:16:26 +01:00
Leigh 31e27fc89a Add test files 2014-09-23 22:54:40 +01:00
Leigh 831bb9260c Add gmp_random_bits(bits) and gmp_random_range(min, max) 2014-09-23 22:12:23 +01:00
Leigh 3d6d863ccb Change GMPs default PRNG to Mersenne Twister
Since we don't allow users to seed the RNG, there is no BC issue with changing the generator.
2014-09-23 19:51:56 +01:00
Bob Weinand 3b81337f80 Fix accidental short-circuiting when comparing fds (& warnings) 2014-09-23 18:29:36 +02:00
Bob Weinand 79ea51f360 Use consistently "num" for an nth opline number 2014-09-23 17:04:39 +02:00
Bob Weinand beb9520039 Merge branch 'master' into xml-protocol
Conflicts:
	phpdbg_prompt.c
2014-09-23 16:51:18 +02:00
Bob Weinand 92fe2d0a85 Add info globals command 2014-09-23 16:48:37 +02:00
Bob Weinand e2329bc704 Add notification at script end 2014-09-23 13:04:53 +02:00
Tjerk Meesters 1765548bce PR 837: Fixed typo in php.ini-development and php.ini-production
Fixed typo in comment for 'mbstring.detect_order'
2014-09-23 18:10:32 +08:00
Sebastian Zartner 876792c756 Fixed typo 2014-09-23 07:45:03 +02:00
Bob Weinand 7f9e036077 Fix breakpoints and listing 2014-09-22 23:28:07 +02:00
Bob Weinand ca635e4884 A few general segfault fixes 2014-09-22 00:52:22 +02:00
Bob Weinand bbeccd7474 First draft of an xml protocol 2014-09-21 04:17:19 +02:00
Ard Biesheuvel 8312836c74 Merge branch 'PHP-5.5' into PHP-5.6 2014-09-20 16:42:12 -07:00
Ard Biesheuvel 7958793342 Merge branch 'PHP-5.4' into PHP-5.5 2014-09-20 16:40:02 -07:00
Ard Biesheuvel e64da8c20d Fixed bug #66242 (don't assume char is signed)
This fixes a bug in libmagic where a cast to 'char' is assumed to result
in sign extension to occur. However, unqualified 'char' is unsigned on
architectures such as ARM, so the cast needs to be to 'signed char'
explicitly.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2014-09-20 16:39:48 -07:00
Nikita Popov 308c0a727e Merge branch 'PHP-5.5' into PHP-5.6 2014-09-20 21:47:59 +02:00
Nikita Popov 5e977e69e1 Fixed bug #67633 2014-09-20 21:46:25 +02:00
Anatol Belski 6213d9fc91 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix possible array underflow
2014-09-19 20:13:46 +02:00
Anatol Belski 5d9403f56c fix possible array underflow
there are multiple issues with this code

- php_stream_read() returns an unsigned val, so is >= 0
- if it read less than sizeof(a) bytes, the function operates on garbage
- result->channels is an unsigned val, so >= 0
2014-09-19 20:12:24 +02:00
Matteo Beccati 24ed330a22 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed freetype test on multiple environments
2014-09-16 10:22:49 +02:00
Matteo Beccati b8470e19e4 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed freetype test on multiple environments
2014-09-16 10:22:34 +02:00
Matteo Beccati 00525b824a Fixed freetype test on multiple environments
Some environments, apparently regardless to the freetype version, output 155, while others 156. I guess we can accept both ;)

This reverts commit 592df89027.
2014-09-16 10:19:29 +02:00
Remi Collet a410067d78 NEWS 2014-09-15 13:32:13 +02:00
Remi Collet 47bc380ecf Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  Fixed bug #65641 PHP-FPM incorrectly defines the SCRIPT_NAME variable when using Apache
2014-09-15 13:31:26 +02:00
Remi Collet ad0b63cad4 NEWS 2014-09-15 13:31:17 +02:00
Remi Collet 8cac75969e Fixed bug #65641 PHP-FPM incorrectly defines the SCRIPT_NAME variable when using Apache
ProxyPass is unable to provide correct PATH_INFO
as it is not aware of file path (while SetHandler is).

As we can extract PATH_INFO from PATH_TRANSLATED,
we also need to check if present in SCRIPT_NAME
and remove it.

After applying this patch.
With mod_php
_SERVER["REQUEST_URI"]     /info.php/foo/bar?q=1
_SERVER["SCRIPT_NAME"]     /info.php
_SERVER["PATH_INFO"]       /foor/bar
_SERVER["PHP_SELF"]        /info.php/foo/bar
_SERVER["QUERY_STRING"]    q=1

With mod_proxy_fcgi + SetHandler
_SERVER["REQUEST_URI"]     /info.php/foo/bar?q=1
_SERVER["SCRIPT_NAME"]     /info.php
_SERVER["PATH_INFO"]       /foo/bar
_SERVER["PHP_SELF"]        /info.php/foo/bar
_SERVER["QUERY_STRING"]    q=1

With mod_proxy_fcgi + ProxyPass
_SERVER["REQUEST_URI"]     /info.php/foo/bar?q=1
_SERVER["SCRIPT_NAME"]     /info.php
_SERVER["PATH_INFO"]       /foo/bar
_SERVER["PHP_SELF"]        /info.php/foo/bar
_SERVER["QUERY_STRING"]    q=1
2014-09-15 13:29:55 +02:00
Anatol Belski 7f0f04e606 updated NEWS 2014-09-15 10:29:00 +02:00
Anatol Belski e8780e27fd Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  updated NEWS
2014-09-15 10:28:22 +02:00
Anatol Belski 24b41a23b3 updated NEWS 2014-09-15 10:27:52 +02:00
Bob Weinand e0e990229d Use full duplex stdin/stdout socket 2014-09-15 09:58:14 +02:00
Remi Collet a390d579bb Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix NEWS - #65641 mod_proxy-fcgi is not fixed (still open) - #67606 mod_fastcgi is fixed in ee275e34c8
  Fix NEWS - #65641 mod_proxy-fcgi is not fixed (still open) - #67606 mod_fastcgi is fixed in ee275e34c8
2014-09-15 08:24:20 +02:00
Remi Collet 6dc6daf7e3 Fix NEWS
- #65641 mod_proxy-fcgi is not fixed (still open)
- #67606 mod_fastcgi is fixed in ee275e34c8
2014-09-15 08:24:10 +02:00
Remi Collet 3411fe33a2 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix NEWS - #65641 mod_proxy-fcgi is not fixed (still open) - #67606 mod_fastcgi is fixed in ee275e34c8
2014-09-15 08:23:40 +02:00
Remi Collet 2775dc2b44 Fix NEWS
- #65641 mod_proxy-fcgi is not fixed (still open)
- #67606 mod_fastcgi is fixed in ee275e34c8
2014-09-15 08:23:25 +02:00
Bob Weinand 29d8aad2f6 Merge phpdbg into PHP-5.6 2014-09-15 05:48:09 +02:00
Bob Weinand 0cb365fb98 Merge phpdbg into PHP-5.6 2014-09-15 05:48:09 +02:00
Bob Weinand 05c73757ed Fix bug #111 (compile error without ZEND_SIGNALS) 2014-09-14 12:24:56 +02:00
Anatol Belski bcdbd47117 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fixed the cast and incompatible pointer warning
2014-09-12 14:36:54 +02:00
Anatol Belski fdfc31a4f7 fixed the cast and incompatible pointer warning 2014-09-12 14:36:00 +02:00
Anatol Belski 13280a9e36 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  reflect in the test that GSS-Negotiate is deprecated since libcurl 7.38.0
2014-09-11 23:31:16 +02:00
Anatol Belski 69ea7f9509 reflect in the test that GSS-Negotiate is deprecated since libcurl 7.38.0 2014-09-11 23:30:01 +02:00
Julien Pauli 8ff79d3e89 5.6.2 now 2014-09-11 18:37:25 +02:00
Anatol Belski 0b89bb83ba Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix precision when fetching float through mysqlnd
2014-09-10 19:31:59 +02:00
Anatol Belski dff820cea3 fix precision when fetching float through mysqlnd
fixes failing ext/mysqli/tests/010.phpt
2014-09-10 19:29:11 +02:00
Bob Weinand cccc75eef9 Do not unload phpdbg module in any case 2014-09-10 17:01:08 +02:00
Bob Weinand 554b30389e Fix segfaults, reorder files and set filename to exec 2014-09-10 16:03:26 +02:00
Bob Weinand c35bb34608 Add webhelper extension and support for loading extensions
New phpdbg commands:
dl [path] - loads module / Zend extension
wait - waits for incoming connection from a phpdbg_webhelper module

Webhelper module is a UNIX domain socket to which a SAPI with the phpdbg_webhelper module loaded will write to the socket information about its whole environment.
phpdbg can then run the request locally [TODO: write the request back to the sender]
2014-09-10 16:03:26 +02:00
Bob Weinand 6464b3ffae Don't run travis against master (phpng) 2014-09-10 15:57:05 +02:00
Michael Wallner 4f2563329b Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  make LTP version check a blacklist
2014-09-10 13:31:22 +02:00
Michael Wallner 3b78a24ee9 make LTP version check a blacklist 2014-09-10 13:30:52 +02:00
Matteo Beccati 0b648a424f FR #67990 - Added nowait argument to sem_acquire 2014-09-10 07:31:25 +02:00
Stanislav Malyshev 3571a68ab9 update NEWS 2014-09-09 16:11:32 -07:00
Daniel Lowrey edb2799333 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Bug #41631: Fix regression from first attempt (6569db8)
  Bug #67965: Fix blocking behavior in non-blocking crypto streams
2014-09-09 10:24:40 -06:00
Daniel Lowrey bf2f80b223 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Bug #41631: Fix regression from first attempt (6569db8)
  Bug #67965: Fix blocking behavior in non-blocking crypto streams
2014-09-09 09:27:20 -06:00
Daniel Lowrey 372844918a Bug #41631: Fix regression from first attempt (6569db8) 2014-09-09 09:01:42 -06:00
Daniel Lowrey f86b2193a4 Bug #67965: Fix blocking behavior in non-blocking crypto streams 2014-09-09 07:37:57 -06:00
Tjerk Meesters da7c87e2f8 Updated NEWS for #67985 2014-09-09 18:04:09 +08:00
Tjerk Meesters 7e9daf60c1 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed #67985 - Incorrect last used array index copied to new array after unset
2014-09-09 18:03:10 +08:00
Tjerk Meesters b9ac5e23fb Updated NEWS for #67985 2014-09-09 18:02:45 +08:00
Tjerk Meesters aca474fa14 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed #67985 - Incorrect last used array index copied to new array after unset
2014-09-09 18:00:49 +08:00
Tjerk Meesters 99f0760bfb Fixed #67985 - Incorrect last used array index copied to new array after unset
In master zend_array_dup() is used to do this properly; this is a workaround.
2014-09-09 17:58:45 +08:00
Michael Wallner 8d1099ac05 duplicate value's string for the SAPI filter
reported by sesser; tyrael, do you take care of the bug/NEWS?
2014-09-09 06:54:23 +02:00
George Wang 4bdd9aabdd Fine tuned the order of adding request variables. 2014-09-09 00:01:03 -04:00
George Wang bdac08bcdd Fine tuned the order of adding request variables. 2014-09-09 00:00:14 -04:00
George Wang d2e1a04b10 Fine tuned the order of adding request variables. 2014-09-08 23:58:05 -04:00
Adam Harvey 0cbfdc9df5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #67972 (SessionHandler Invalid memory read create_sid()).
  Update LSAPI to 6.7, added support for 'filter_input'. Fixed a crash in CLI mode.
  5.5.18 now

Conflicts:
	configure.in
	main/php_version.h
2014-09-08 19:28:15 +00:00
Adam Harvey bc44eb6172 Fix bug #67972 (SessionHandler Invalid memory read create_sid()).
SessionHandler::create_sid() didn't check if PS(default_mod) was initialised
before attempting to call its create_sid() handler.
2014-09-08 19:25:14 +00:00
Nikita Popov 03797a73b2 Split GMP tests testing multiple functions
Also drop dummy test
2014-09-04 21:18:37 +02:00
Nikita Popov 9586b15229 Give proper names to GMP test files 2014-09-04 21:10:41 +02:00
Nikita Popov 15c139b99a Throw warnings when using zero modulus in gmp_powm
Also fixes a leak in this case.
2014-09-04 20:55:09 +02:00
Nikita Popov f10d194c8c Add GMP tests for some uncovered branches 2014-09-04 20:03:29 +02:00
Tjerk Meesters af3bd57d33 Updated NEWS for #67955 2014-09-04 07:00:14 +08:00
Tjerk Meesters fa08ff9245 Fixed #67955: SoapClient prepends 0-byte to cookie names 2014-09-04 06:58:04 +08:00
George Wang b85b78db4f Update LSAPI to 6.7, added support for 'filter_input'.
Fixed a crash in CLI mode.
2014-09-03 11:29:44 -04:00
George Wang b16929ca72 Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5 2014-09-03 11:28:30 -04:00
George Wang bba16dde5d Update LSAPI to 6.7, added support for 'filter_input'.
Fixed a crash in CLI mode.
2014-09-03 11:27:54 -04:00
George Wang 582f42b8d4 Update LSAPI to 6.7, added support for 'filter_input'.
Fixed a crash in CLI mode.
2014-09-03 11:24:45 -04:00
Philip Hofstetter 9befa8c5f7 fix bug #67955
this fixes a regression from 6c2a806820.

smart_str_appendl is expecting the length as the length of the string,
but key_length is the byte length of the key, including the 0
terminator.

As such, the cookie name appeneded to the header would now also include
the 0 terminator of the key name which then would be sent to the server.
2014-09-03 14:35:40 +02:00
Julien Pauli 9266227402 5.5.18 now 2014-09-03 10:18:51 +02:00
Matteo Beccati 627704b38e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed test with freetype >= 2.4.12
2014-09-03 09:45:09 +02:00
Matteo Beccati 72c9b0e12b Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed test with freetype >= 2.4.12
2014-09-03 09:44:59 +02:00
Matteo Beccati 592df89027 Fixed test with freetype >= 2.4.12 2014-09-03 09:43:29 +02:00
Stanislav Malyshev 3e7d11b632 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  5.4.34 is next
2014-09-02 15:04:00 -07:00
Stanislav Malyshev a734acd439 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  5.4.34 is next

Conflicts:
	configure.in
	main/php_version.h
2014-09-02 15:03:54 -07:00
Stanislav Malyshev 5e95b61639 5.4.34 is next 2014-09-02 15:03:04 -07:00
Stanislav Malyshev 0c6e2b5219 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Revert "Fix bug #67644 - Memory corruption & crash during ob_start function callback"
2014-09-02 14:19:03 -07:00
Stanislav Malyshev 70f92aa97e Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Revert "Fix bug #67644 - Memory corruption & crash during ob_start function callback"
2014-09-02 14:18:05 -07:00
Stanislav Malyshev fe551c089a Revert "Fix bug #67644 - Memory corruption & crash during ob_start function callback"
This reverts commit 53fa6c5b6b.
The change breaks tests, so not putting it into 5.4.
2014-09-02 14:15:39 -07:00
Stanislav Malyshev 63f42adbb2 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #67644 - Memory corruption & crash during ob_start function callback
2014-09-02 12:32:40 -07:00
Stanislav Malyshev af85eff5b6 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #67644 - Memory corruption & crash during ob_start function callback
2014-09-02 12:32:03 -07:00
Stanislav Malyshev 53fa6c5b6b Fix bug #67644 - Memory corruption & crash during ob_start function callback 2014-09-02 12:31:03 -07:00
Nikita Popov 834daa455b Fixed bug #50175
0x and 0b prefix is now only handled if either no base is given
or if the base is 16 (0x) or 2 (0b). Always handling it is incorrect
because 0x and 0b are perfectly valid numbers in other bases.
2014-09-02 19:04:55 +02:00
Nikita Popov 7533243f0c Fix C89 build and small cleanup 2014-09-02 18:52:13 +02:00
Leigh 47d630e7f0 Implement gmp_import() and gmp_export() 2014-09-02 14:19:18 +02:00
Tjerk Meesters f54451cf39 Make DOMNode::textContent writeable 2014-09-02 06:34:18 +08:00
Tjerk Meesters 8da58e36b4 Updated UPGRADING 2014-09-02 06:32:56 +08:00
Tjerk Meesters 83bacd2fe0 Updated NEWS 2014-09-02 06:32:56 +08:00
Stanislav Malyshev 57f82819e9 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update NEWS
  Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036)
  Fix typo from commit 32314f6b6
  Fix destruction order in zend_shutdown (bug #65463, #66036)
2014-09-01 12:20:34 -07:00
Stanislav Malyshev 4b9fcc01d4 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  update NEWS
  Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036)
  Fix typo from commit 32314f6b6
  Fix destruction order in zend_shutdown (bug #65463, #66036)
2014-09-01 12:15:54 -07:00
Stanislav Malyshev 30aceaf1a7 update NEWS 2014-09-01 12:13:43 -07:00
Stanislav Malyshev 197095c29e Merge branch 'pull-request/770' into PHP-5.4
* pull-request/770:
  Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036)
  Fix typo from commit 32314f6b6
  Fix destruction order in zend_shutdown (bug #65463, #66036)
2014-09-01 12:11:42 -07:00
Derick Rethans f89b7ec389 Merge branch 'PHP-5.5' into PHP-5.6 2014-09-01 16:40:54 +01:00
Derick Rethans 21446cd7b6 Merge branch 'PHP-5.4' into PHP-5.5 2014-09-01 16:40:50 +01:00
Derick Rethans e665a07ab9 - Updated to version 2014.7 (2014g) 2014-09-01 16:40:49 +01:00
Tjerk Meesters f0ba3e265a Updated UPGRADING for #38409 2014-09-01 22:15:53 +08:00
Tjerk Meesters 65c1e14cb9 Updated NEWS for #38409 2014-09-01 22:13:38 +08:00
Tjerk Meesters 1bf996b324 Added test case 2014-09-01 22:04:25 +08:00
Tjerk Meesters 5270ee1aef Making ini parser typed
- Added ZEND_INI_SCANNER_TYPED mode for parse_ini_string() and parse_ini_file()
- Added NULL_NULL token to separate it from BOOL_FALSE and BOOL_TRUE
- Added zend_ini_copy_typed_value() function for zval initialisation
- Updated RETURN_TOKEN() to observe scanner_mode
2014-09-01 22:04:06 +08:00
Nikita Popov d7368c2531 Fix bug #67938: Segfault when extending interface method with variadic
We only want to check extra optional args if the proto function is
variadic, not when we're adding extra variadic args.
2014-08-30 20:43:34 +02:00
Anatol Belski daefca44b5 updated NEWS 2014-08-30 04:06:00 +02:00
Anatol Belski c301467f9b Fixed bug #67731 finfo::file() returns invalid mime type for binary files 2014-08-30 04:04:42 +02:00
Lior Kaplan 13b45a36f0 Add missing CVE IDs for 5.6.0 2014-08-29 11:42:12 +03:00
Lior Kaplan 210e35a2fa Align entiries format to "Fixed bug #..." 2014-08-29 11:42:12 +03:00
Lior Kaplan 49d6472f9f Use #66356 instead of #66714, as the latter is only a regression fix from the former. 2014-08-29 11:42:12 +03:00
Lior Kaplan cd38d72eee Add an entry for bug#66060 (fixed in 5.5.8) 2014-08-29 11:42:12 +03:00
Stanislav Malyshev 08c63e2a56 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix NEWS for fcgi fix merge
  restore FPM compatibility with mod_fastcgi broken since #694 / 67541, fixes bug 67606
2014-08-28 23:12:41 -07:00
Stanislav Malyshev e55c641792 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix NEWS for fcgi fix merge
  restore FPM compatibility with mod_fastcgi broken since #694 / 67541, fixes bug 67606
2014-08-28 23:11:55 -07:00
Stanislav Malyshev b206b0e29d fix NEWS for fcgi fix merge 2014-08-28 23:10:32 -07:00
David Zuelke ee275e34c8 restore FPM compatibility with mod_fastcgi broken since #694 / 67541, fixes bug 67606 2014-08-28 23:06:00 -07:00
Lior Kaplan a8b97086d7 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  config.guess: add ppc64le / ppcle support by Anton Blanchard <anton@samba.org>
  libtool: powerpc*le-linux support by Alan Modra <amodra@bigpond.net.au>
2014-08-28 00:48:28 +03:00
Lior Kaplan b38ca3adee config.guess: add ppc64le / ppcle support by Anton Blanchard <anton@samba.org>
Based on http://git.savannah.gnu.org/cgit/config.git/commit/?id=29900d3b
2014-08-28 00:44:31 +03:00
Lior Kaplan 302ccc195b libtool: powerpc*le-linux support by Alan Modra <amodra@bigpond.net.au>
Patch created using the following changes in libtool:
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=75ffb257
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=056889b8
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=bd998a7e
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=429d40a0
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=8a8dfaec
2014-08-28 00:37:01 +03:00
Nikita Popov fc5f931663 Fix bug #67917 (gmp compound assignment operator leak) 2014-08-27 22:16:20 +02:00
Chris Wright db03216e62 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix stream_select() issue with OpenSSL buffer
2014-08-27 16:06:28 +01:00
Chris Wright 30a73658c6 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix stream_select() issue with OpenSSL buffer

Conflicts:
	ext/openssl/xp_ssl.c
2014-08-27 16:01:18 +01:00
Chris Wright 32be79dcfa Fix stream_select() issue with OpenSSL buffer
Ensure data from OpenSSL internal buffer has been
transfered to PHP stream buffer before a select()
emulation operation is performed

Addresses bug #65137
https://bugs.php.net/bug.php?id=65137

Conflicts:
	ext/openssl/xp_ssl.c
2014-08-27 13:25:50 +01:00
Anatol Belski 4d667eeaf3 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fixed DBG_INF macro name
2014-08-27 12:11:35 +02:00
Anatol Belski 7fac56e072 fixed DBG_INF macro name 2014-08-27 12:10:35 +02:00
Julien Pauli 1d6e9e8fb7 reworked NEWS for 5.6.0GA 2014-08-27 10:47:44 +02:00
Ferenc Kovacs f39ff29366 fix the NEWS 2014-08-27 04:51:24 +02:00
Ferenc Kovacs bd3e758cf8 add the NEWS entries from the last stable release 2014-08-27 04:23:55 +02:00
Ferenc Kovacs 7ec03b481a almost forgot to bump this 2014-08-27 04:18:23 +02:00
Ferenc Kovacs b165be9ae1 from now on, this should be 5.6.1-dev 2014-08-27 04:14:23 +02:00
Ferenc Kovacs f7b7c14594 update NEWS to reflect what makes into 5.6.0 final 2014-08-27 04:07:37 +02:00
Ferenc Kovacs 86b2d7b523 remove the -dev suffix from the Zend version 2014-08-27 03:52:46 +02:00
Ferenc Kovacs e0a177d676 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update the GIT-RULES with the 5.6 and the release branches
2014-08-27 00:47:57 +02:00
Ferenc Kovacs 1e1b7c74fb Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  update the GIT-RULES with the 5.6 and the release branches
2014-08-27 00:47:37 +02:00
Ferenc Kovacs 52f35b984c update the GIT-RULES with the 5.6 and the release branches 2014-08-27 00:47:09 +02:00
Ferenc Kovacs dbe8c37476 better heading for UPGRADING.INTERNALS 2014-08-26 00:31:36 +02:00
Daniel Lowrey ffab52ad7d Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Update NEWS
2014-08-25 19:50:02 +02:00
Daniel Lowrey f463523cda Update NEWS 2014-08-25 19:47:35 +02:00
Daniel Lowrey 546a32e2b3 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Bug #67850: Build when OpenSSL compiled without SSLv3 support

Conflicts:
	ext/openssl/xp_ssl.c
2014-08-25 18:16:38 +02:00
Daniel Lowrey 640214701c Bug #67850: Build when OpenSSL compiled without SSLv3 support 2014-08-25 17:28:09 +02:00
Lior Kaplan 6e87b01e95 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Bug #67730: Add tests by Ryan Mauger <ryan@rmauger.co.uk>
2014-08-25 00:30:40 +03:00
Lior Kaplan c8b3bce407 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Bug #67730: Add tests by Ryan Mauger <ryan@rmauger.co.uk>
2014-08-25 00:30:01 +03:00
Lior Kaplan bda1cc6946 Bug #67730: Add tests by Ryan Mauger <ryan@rmauger.co.uk> 2014-08-25 00:29:05 +03:00
Ferenc Kovacs 86966a092b Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  this test depends on the simplexml ext, not just on xml
2014-08-24 00:09:31 +02:00
Ferenc Kovacs a90d05a430 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  this test depends on the simplexml ext, not just on xml
2014-08-24 00:09:00 +02:00
Ferenc Kovacs cb41a7bad1 this test depends on the simplexml ext, not just on xml 2014-08-24 00:08:09 +02:00
Marcelo Diniz cba1150cdb tests image gd 2014-08-23 16:55:55 -03:00
Keyur Govande 437612f656 Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036) 2014-08-23 14:17:37 +00:00
Tjerk Meesters ce9bdae33f Fixed #67694: Regression in session_regenerate_id() 2014-08-23 09:18:02 +08:00
Michael Wallner 3b82c4e520 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix bug #67865
  updated NEWS to fit last release
  NEWS
  Fix bug #67878 program_prefix not honoured in man pages
2014-08-21 22:45:33 +02:00
Michael Wallner c4fb183b9f Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix bug #67865
2014-08-21 22:43:25 +02:00
Michael Wallner 54fbbded37 fix bug #67865 2014-08-21 22:41:36 +02:00
Julien Pauli dbbf1c2a3c updated NEWS to fit last release 2014-08-21 11:34:38 +02:00
Remi Collet 76c2a9f4f4 NEWS 2014-08-21 09:14:39 +02:00
Remi Collet e02616866f Fix bug #67878 program_prefix not honoured in man pages
- add @program_prefix@ in php, phpize and php-config man pages
- set date to 2014
- fix "SEE ALSO" alignment
2014-08-21 09:14:38 +02:00
Remi Collet 43ed561222 NEWS 2014-08-21 09:14:16 +02:00
Remi Collet e9166fec62 Fix bug #67878 program_prefix not honoured in man pages
- add @program_prefix@ in php, phpize and php-config man pages
- set date to 2014
- fix "SEE ALSO" alignment
2014-08-21 09:14:16 +02:00
Anatol Belski d3ca974ff5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  avoid clash when stdint.h was included after win32/php_stdint.h
2014-08-21 09:09:29 +02:00
Anatol Belski 713e9a7eaa avoid clash when stdint.h was included after win32/php_stdint.h 2014-08-21 09:08:44 +02:00
Stanislav Malyshev 89d3a356d1 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix test
2014-08-20 14:44:33 -07:00
Stanislav Malyshev 6da2a977fc fix test 2014-08-20 14:44:25 -07:00
Stanislav Malyshev 2dfabd8b51 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix test
2014-08-20 14:43:22 -07:00
Stanislav Malyshev 6424bf659d fix test 2014-08-20 14:42:48 -07:00
Remi Collet 42e1df9b01 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
2014-08-20 15:17:20 +02:00
Remi Collet 825ddbb3c6 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  NEWS
2014-08-20 15:17:05 +02:00
Remi Collet 9185cfd539 NEWS 2014-08-20 15:16:53 +02:00
Remi Collet f4120e53c8 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fixed variable corruption under win x64
2014-08-20 15:10:54 +02:00
Remi Collet 6d19358ae0 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fixed variable corruption under win x64
2014-08-20 15:10:02 +02:00
Anatol Belski 20941b71aa fixed variable corruption under win x64 2014-08-20 15:08:52 +02:00
Lior Kaplan 96f812e411 Add NEWS entry for bug #67730 2014-08-20 01:34:57 +03:00
Lior Kaplan ac0c864c63 Add CVE ID for bug #67539 2014-08-20 01:18:15 +03:00
Lior Kaplan 6aa7466492 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Add NEWS entry for bug #67492
  Add NEWS entry for bug #67730
  Add NEWS entry for bug #67730
  Add CVE ID for bug #67539
2014-08-20 01:16:04 +03:00
Lior Kaplan d382d6f3dc Add NEWS entry for bug #67492
Included in 5.5.14 with commit d9c5a1d
2014-08-20 01:10:38 +03:00
Lior Kaplan 9360b6eeee Add NEWS entry for bug #67730 2014-08-20 01:05:22 +03:00
Lior Kaplan aa6dc6c108 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Add NEWS entry for bug #67730
  Add CVE ID for bug #67539
2014-08-20 01:01:23 +03:00
Lior Kaplan 276bead9c4 Add NEWS entry for bug #67730
Included in 5.4.32 with commit 706aefb
2014-08-20 00:54:19 +03:00
Lior Kaplan 359bc0ee2f Add CVE ID for bug #67539 2014-08-20 00:51:37 +03:00
Sara Golemon a309dda777 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Switch use of strtok() to gd_strtok_r()
2014-08-19 13:22:14 -07:00
Sara Golemon ac4569621d Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Switch use of strtok() to gd_strtok_r()

Conflicts:
	NEWS
2014-08-19 13:17:56 -07:00
Sara Golemon cbe1597b74 Switch use of strtok() to gd_strtok_r()
strtok() is not thread safe, so this will potentially break in
very bad ways if used in ZTS mode.

I'm not sure why gd_strtok_r() exists since it seems to do the
same thing as strtok_r(), but I'll assume it's a portability
decision and do as the Romans do.
2014-08-19 13:16:44 -07:00
Stanislav Malyshev fae17a00f5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  5.4.32
  fix potentially missing NUL termination
  Fix bug #67730 - Null byte injection possible with imagexxx functions
  Fixed bug #67717 - segfault in dns_get_record
  Fix bug #67716 - Segfault in cdf.c
  5.4.32 RC1
2014-08-19 01:34:25 -07:00
Stanislav Malyshev b278be894f Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  5.4.32
  fix potentially missing NUL termination
  Fix bug #67730 - Null byte injection possible with imagexxx functions
  Fixed bug #67717 - segfault in dns_get_record
  Fix bug #67716 - Segfault in cdf.c
  5.4.32 RC1
2014-08-19 01:34:09 -07:00
Stanislav Malyshev 5a7039035c Merge tag 'PHP-5.4.32' into PHP-5.4
5.4.32

* tag 'PHP-5.4.32':
  5.4.32
  fix potentially missing NUL termination
  Fix bug #67730 - Null byte injection possible with imagexxx functions
  Fixed bug #67717 - segfault in dns_get_record
  Fix bug #67716 - Segfault in cdf.c
  5.4.32 RC1

Conflicts:
	configure.in
	main/php_version.h
2014-08-19 01:33:45 -07:00
Stanislav Malyshev eb2360602e 5.4.32 2014-08-19 00:40:27 -07:00
Remi Collet cdd987b16c NEWS 2014-08-19 08:41:42 +02:00
Remi Collet 230804b08d Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  NEWS
  Fixed Sec Bug #67717 segfault in dns_get_record CVE-2014-3597
2014-08-19 08:41:14 +02:00
Remi Collet 335d89ec4d NEWS 2014-08-19 08:40:58 +02:00
Remi Collet 5e9e0a2c74 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  NEWS
  Fixed Sec Bug #67717 segfault in dns_get_record CVE-2014-3597
2014-08-19 08:40:30 +02:00
Remi Collet 88c48a4b95 NEWS 2014-08-19 08:40:18 +02:00
Remi Collet 2fefae4771 Fixed Sec Bug #67717 segfault in dns_get_record CVE-2014-3597
Incomplete fix for CVE-2014-4049

Check possible buffer overflow
- pass real buffer end to dn_expand calls
- check buffer len before each read
2014-08-19 08:33:49 +02:00
Stanislav Malyshev 2b10db8e10 fix potentially missing NUL termination 2014-08-18 23:04:24 -07:00
Stanislav Malyshev 706aefb781 Fix bug #67730 - Null byte injection possible with imagexxx functions 2014-08-18 22:49:10 -07:00
Stanislav Malyshev 529da0f74c Fixed bug #67717 - segfault in dns_get_record 2014-08-18 22:37:25 -07:00
Derick Rethans 77cc6aabb7 Merge branch 'PHP-5.5' into PHP-5.6 2014-08-18 20:27:44 +01:00
Derick Rethans 299d8f339f Merge branch 'datetimebugs' into PHP-5.5 2014-08-18 20:27:33 +01:00
Derick Rethans 05d1612e16 BFN. 2014-08-18 18:46:56 +01:00
Derick Rethans 36d05d75c8 Fixed bug #67109: First uppercase letter breaks date string parsing. 2014-08-18 18:41:50 +01:00
Derick Rethans 2b9af967fb Fixed bug #66985: Some timezones are no longer valid in PHP 5.5.10. 2014-08-18 18:41:50 +01:00
Ferenc Kovacs d07f49118a improve the grammar for my recent UPGRADING note 2014-08-18 18:47:07 +02:00
Ferenc Kovacs 003c2c1005 mention the changes regarding ReflectionClass::newInstanceWithoutConstructor in UPGRADING
see the discussion on the mailing list and in the pull request for details:
https://github.com/php/php-src/pull/733
2014-08-18 16:59:03 +02:00
Lior Kaplan f1d0e50ea8 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Correct typo in comments: 'initialized'
2014-08-17 21:34:03 +03:00
Lior Kaplan fac08a960b Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Correct typo in comments: 'initialized'
2014-08-17 21:33:41 +03:00
Lior Kaplan 1504f7d630 Correct typo in comments: 'initialized' 2014-08-17 21:32:53 +03:00
Lior Kaplan 56d02d564e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  typofixes
2014-08-17 15:51:15 +03:00
Lior Kaplan be2128c805 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  typofixes
2014-08-17 15:48:22 +03:00
Veres Lajos 3f42f2f5d1 typofixes 2014-08-17 15:44:02 +03:00
Keyur Govande c6d9bf2946 Update NEWS 2014-08-15 23:49:07 +00:00
Keyur Govande 032dee4982 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Update NEWS
  Fix another failing test
  Add NEWS
  Fix failing tests
  Patch for bug #67839 (mysqli does not handle 4-byte floats correctly)

Conflicts:
	ext/mysqli/tests/mysqli_change_user.phpt
2014-08-15 23:47:06 +00:00
Keyur Govande 6279246d2c Update NEWS 2014-08-15 23:38:14 +00:00
Keyur Govande 48dc203408 Fix another failing test 2014-08-15 23:26:21 +00:00
Keyur Govande 7c4b5d9187 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Add NEWS
  Fix failing tests
  Patch for bug #67839 (mysqli does not handle 4-byte floats correctly)

Conflicts:
	ext/mysqli/tests/table.inc
2014-08-15 23:13:36 +00:00
Keyur Govande 0407bdf252 Add NEWS 2014-08-15 23:08:29 +00:00
Keyur Govande 7bfe9bf951 Merge branch 'pull-request/772' into PHP-5.4
* pull-request/772:
  Fix failing tests
  Patch for bug #67839 (mysqli does not handle 4-byte floats correctly)

Before the patch, a value of 9.99 in a FLOAT column came out of mysqli
as 9.9998998641968. This is because it would naively cast a 4-byte float
into PHP's internal 8-byte double.
To fix this, with GCC we use the built-in decimal support to "up-convert"
the 4-byte float to a 8-byte double.
When that is not available, we fall back to converting the float
to a string and then converting the string to a double. This mimics
what MySQL does.
2014-08-15 23:06:55 +00:00
Stanislav Malyshev 3e6cfeed8f add NEWS for 5.6 too 2014-08-14 18:16:33 -07:00
Remi Collet 7ba1409a1a Fix bug #67716 - Segfault in cdf.c 2014-08-14 17:44:19 -07:00
Stanislav Malyshev 23122ba69c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #67716 - Segfault in cdf.c
  Fix bug #67716 - Segfault in cdf.c
2014-08-14 17:22:06 -07:00
Stanislav Malyshev 59c2477bc3 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #67716 - Segfault in cdf.c
2014-08-14 17:21:37 -07:00
Stanislav Malyshev 3468f03b6f Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #67716 - Segfault in cdf.c
2014-08-14 17:21:29 -07:00
Remi Collet 35f32637b0 Fix bug #67716 - Segfault in cdf.c 2014-08-14 17:21:20 -07:00
Remi Collet 49387b31cf Fix bug #67716 - Segfault in cdf.c 2014-08-14 17:19:03 -07:00
Stanislav Malyshev ed7ab762de Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix test
2014-08-14 17:08:37 -07:00
Stanislav Malyshev ff4cf1a838 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix test
2014-08-14 17:07:45 -07:00
Stanislav Malyshev eab42649ab fix test 2014-08-14 17:07:28 -07:00
Stanislav Malyshev 41fccab023 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  split the glob() test to test different basedir
  fixed glob() edge case on windows, ref bug #47358
  - fix bug #47358, glob returns error, should be empty array()
2014-08-14 17:05:12 -07:00
Stanislav Malyshev 008330e5b3 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  split the glob() test to test different basedir
2014-08-14 17:05:03 -07:00
Anatol Belski b7cd099ae0 split the glob() test to test different basedir 2014-08-14 17:04:51 -07:00
Stanislav Malyshev 4185633207 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fixed glob() edge case on windows, ref bug #47358
  - fix bug #47358, glob returns error, should be empty array()
2014-08-14 17:00:36 -07:00
Anatol Belski ad492ca932 fixed glob() edge case on windows, ref bug #47358 2014-08-14 16:58:16 -07:00
Pierre Joye 481c4715d4 - fix bug #47358, glob returns error, should be empty array()
Conflicts:
	ext/standard/dir.c
2014-08-14 16:56:22 -07:00
Keyur Govande 4e2c01617f Fix failing tests 2014-08-14 18:20:26 +00:00
Keyur Govande c044164a96 Patch for bug #67839 (mysqli does not handle 4-byte floats correctly)
Before the patch, a value of 9.99 in a FLOAT column came out of mysqli
as 9.9998998641968. This is because it would naively cast a 4-byte float
into PHP's internal 8-byte double.
To fix this, with GCC we use the built-in decimal support to "up-convert"
the 4-byte float to a 8-byte double.
When that is not available, we fall back to converting the float
to a string and then converting the string to a double. This mimics
what MySQL does.
2014-08-14 18:19:56 +00:00
Johannes Schlüter a68f63156c Merge branch 'PHP-5.5' into PHP-5.6 2014-08-14 17:25:22 +02:00
Johannes Schlüter d1dd71454d Merge branch 'PHP-5.4' into PHP-5.5 2014-08-14 17:22:25 +02:00
Johannes Schlüter aeb633543b Merge branch 'PHP-5.3' into PHP-5.4 2014-08-14 17:13:44 +02:00
Johannes Schlüter 7311087cf0 Update Git rules 2014-08-14 17:08:02 +02:00
Johannes Schlüter 1355ea60cc Back to -dev (with EOL notice in NEWS) 2014-08-14 17:05:20 +02:00
Keyur Govande 5e338836ff Fix typo from commit 32314f6b6 2014-08-14 01:14:11 +00:00
Keyur Govande 32314f6b67 Fix destruction order in zend_shutdown (bug #65463, #66036)
If Apache or a similar SAPI receives a signal during PHP processing
it calls zend_shutdown() without calling shutdown_executor().
	#65463: If a module like Gearman or Memcached is loaded,
in the unfixed version it is unloaded by zend_destroy_modules() before the
CG(CLASS_TABLE) is destructed. When CG(CLASS_TABLE) is destructed,
any pointers to methods (specifically around destruction) in the unloaded
module's .so are now dangling and the process segfaults.
	#66036: Any subclasses of an internal class like ArrayObject need
to be destructed in order: subclass first and then the internal class. In the
unfixed version zend_shutdown() clears the CG(CLASS_TABLE) from the head
of the list onwards, so internal classes are destructed first and user-defined
classes last. Internal classes are alloc/deallocated with malloc/free while
user-defined classes with emalloc/efree. If there's shared data between them
then efree() could be called instead of free() leading to a seg-fault.
2014-08-14 00:55:14 +00:00
Ferenc Kovacs 7c5af1adf9 new NEWS block for the next release 2014-08-14 02:17:55 +02:00
Johannes Schlüter babeca356b It's 2014 already, fix copyright year where user visible
Left out all file headers
2014-08-13 21:22:50 +02:00
Johannes Schlüter 1847cf10c1 PHP 5.3.29 2014-08-13 18:36:10 +02:00
Tjerk Meesters 7fbc99e390 Some changes were lost in the merge commit of #66091 2014-08-13 20:57:10 +08:00
Tjerk Meesters e4905b38b7 Updated NEWS for #66091 2014-08-13 20:24:43 +08:00
Tjerk Meesters 4b85f1d46a Fixed #66091 2014-08-13 20:24:43 +08:00
Tjerk Meesters 4950209a74 Updated NEWS for #66091 2014-08-13 20:20:54 +08:00
Tjerk Meesters 4647016abe Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Updated NEWS for #66091
  Fixed #66091

Conflicts:
	ext/date/php_date.c
2014-08-13 20:20:10 +08:00
Tjerk Meesters b0f7cc8756 Updated NEWS for #66091 2014-08-13 20:16:22 +08:00
Tjerk Meesters c5f619ba6f Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed #66091

Conflicts:
	ext/date/php_date.c
2014-08-13 20:15:52 +08:00
Tjerk Meesters f6896e4395 Fixed #66091 2014-08-13 20:12:42 +08:00
Ferenc Kovacs 844e2e81f5 Merge branch 'pr-765' into PHP-5.6
* pr-765:
  NEWS entry for e6d93a1 / d73d44c
  restore FPM compatibility with mod_fastcgi broken since #694 / 67541, fixes bug 67606
  Revert "Merge branch 'pull-request/694' into PHP-5.6"
2014-08-12 14:47:03 +02:00
Anatol Belski 00fe640b19 updated NEWS 2014-08-12 11:52:50 +02:00
Anatol Belski f50c50a1f8 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  updated NEWS
  updated NEWS
  backported the fix for bug #41577
2014-08-12 11:52:07 +02:00
Anatol Belski de18f42047 updated NEWS 2014-08-12 11:51:42 +02:00
Anatol Belski 934c35f586 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  updated NEWS
  backported the fix for bug #41577
2014-08-12 11:50:55 +02:00
Anatol Belski 8c247af1fc updated NEWS 2014-08-12 11:50:26 +02:00
Anatol Belski daa1fb8ba6 backported the fix for bug #41577 2014-08-12 11:49:46 +02:00
Ferenc Kovacs 54e8595f34 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix the failing date tests introduced with the latest timezonedb update Derick confirmed on irc that the new/current behavior is the correct and that the tests should be updated to reflect it
2014-08-12 10:38:35 +02:00
Ferenc Kovacs 7aa776c7b4 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix the failing date tests introduced with the latest timezonedb update Derick confirmed on irc that the new/current behavior is the correct and that the tests should be updated to reflect it
2014-08-12 10:37:44 +02:00
Ferenc Kovacs 39dd715382 fix the failing date tests introduced with the latest timezonedb update
Derick confirmed on irc that the new/current behavior is the correct and that the tests should be updated to reflect it
2014-08-12 10:34:54 +02:00
Xinchen Hui 1f496744ed Merge branch 'PHP-5.5' into PHP-5.6 2014-08-11 17:47:36 +08:00
Xinchen Hui b6ddcf9c71 Fixed bug #67813 (CachingIterator::__construct InvalidArgumentException wrong message) 2014-08-11 17:46:56 +08:00
Xinchen Hui d4df6d0200 Merge branch 'PHP-5.5' of https://git.php.net/repository/php-src into PHP-5.5 2014-08-11 17:44:42 +08:00
David Zuelke 37c08f466e NEWS entry for e6d93a1 / d73d44c 2014-08-09 08:30:50 +02:00
David Zuelke e6d93a11ad restore FPM compatibility with mod_fastcgi broken since #694 / 67541, fixes bug 67606 2014-08-09 08:26:33 +02:00
David Zuelke d73d44c237 Revert "Merge branch 'pull-request/694' into PHP-5.6"
This reverts commit d96de86b5b, reversing
changes made to b1e32a4f7a.
2014-08-09 08:14:23 +02:00
Adam Harvey cd63740db7 Add __debugInfo() to UPGRADING.
RMs: this is an UPGRADING only change, and should be safe for RCs.

Developers: please remember to update UPGRADING, otherwise there's a good
chance your shiny new feature won't be documented! (As has happened here.)
2014-08-08 12:00:13 -07:00
Anatol Belski 8b8297170e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix TS build
2014-08-07 19:50:45 +02:00
Anatol Belski 75991561d6 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix TS build
2014-08-07 19:50:25 +02:00
Anatol Belski 84a4041ba4 fix TS build 2014-08-07 19:49:59 +02:00
Daniel Lowrey 6e8de9b418 Update NEWS 2014-08-07 12:40:52 -04:00
Daniel Lowrey dc53eba23b Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Update NEWS
  Update NEWS
2014-08-07 12:39:52 -04:00
Daniel Lowrey a04c5536bb Update NEWS 2014-08-07 12:39:42 -04:00
Daniel Lowrey 378ffd3cdf Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Update NEWS
2014-08-07 12:38:04 -04:00
Daniel Lowrey 1ff30fd88c Update NEWS 2014-08-07 12:37:50 -04:00
Daniel Lowrey 98e67add15 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Bug #41631: Observe socket read timeouts in SSL streams

Conflicts:
	ext/openssl/xp_ssl.c
2014-08-07 12:07:55 -04:00
Daniel Lowrey 5ac2e5f850 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Bug #41631: Observe socket read timeouts in SSL streams
2014-08-07 11:51:42 -04:00
Daniel Lowrey 6569db8808 Bug #41631: Observe socket read timeouts in SSL streams 2014-08-07 11:47:42 -04:00
Anatol Belski 2cdc1a2b74 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  wrap int8_t and int16_t with #ifdef to avoid possible clashes
2014-08-07 15:22:28 +02:00
Anatol Belski 58088c24eb Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  wrap int8_t and int16_t with #ifdef to avoid possible clashes
2014-08-07 15:21:42 +02:00
Anatol Belski 7189039d65 wrap int8_t and int16_t with #ifdef to avoid possible clashes 2014-08-07 15:20:17 +02:00
Derick Rethans 33e9bb79a3 Merge branch 'PHP-5.5' into PHP-5.6 2014-08-07 10:22:14 +01:00
Derick Rethans 0753c22e76 Merge branch 'PHP-5.4' into PHP-5.5 2014-08-07 10:22:10 +01:00
Derick Rethans 7df4087b98 - Updated to version 2014.6 (2014f) 2014-08-07 10:22:09 +01:00
Bob Weinand 4628760f70 Removed Countable::count() change info from UPGRADE.INTERNALS too 2014-08-06 21:13:58 +02:00
Ferenc Kovacs 791c87ae48 Revert "Add SO_REUSEPORT + SO_BROADCAST support via socket stream context option"
This reverts commit a51bf0cadf.
2014-08-06 20:33:48 +02:00
Andrey Hristov 847c65e967 Merge branch 'PHP-5.5' into PHP-5.6
Conflicts:
	NEWS
	configure.in
	main/php_version.h
2014-08-06 17:03:39 +03:00
Andrey Hristov 637367fc73 Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5
Conflicts:
	NEWS
	configure.in
	main/php_version.h
2014-08-06 17:02:17 +03:00
Andrey Hristov e6a6a5d9dc Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6
Conflicts:
	NEWS
2014-08-06 16:59:56 +03:00
Andrey Hristov 9959ead309 Use callback structure 2014-08-06 16:50:27 +03:00
Andrey Hristov 3dc9bef819 Merge branch 'PHP-5.5' into PHP-5.6
Conflicts:
	ext/fileinfo/data_file.c
	ext/fileinfo/libmagic/softmagic.c
	ext/fileinfo/magicdata.patch
2014-08-06 16:25:12 +03:00
Andrey Hristov ce5efa7adc Merge branch 'PHP-5.4' into PHP-5.5 2014-08-06 15:28:06 +03:00
Andrey Hristov 41e1ccefd5 Merge branch 'PHP-5.4' into PHP-5.5
Conflicts:
	NEWS
	configure.in
	main/php_version.h
2014-08-06 15:27:56 +03:00
Andrey Hristov d72b943262 Add EXPECTF 2014-08-06 15:27:29 +03:00
Andrey Hristov 9444bc7997 Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2014-08-06 14:52:55 +03:00
Andrey Hristov 547451796c Fix handling of multi-result sets with PS...used to clean not only
the result set but the whole PS.
2014-08-06 14:52:12 +03:00
Julien Pauli 05baed522f 5.5.17 now 2014-08-06 10:20:31 +02:00
Stanislav Malyshev 9e3bc19932 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  5.4.33-dev now
2014-08-05 21:29:27 -07:00
Stanislav Malyshev 1e9abea139 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  5.4.33-dev now

Conflicts:
	configure.in
	main/php_version.h
2014-08-05 21:26:11 -07:00
Stanislav Malyshev 65cf73c931 5.4.33-dev now 2014-08-05 21:24:55 -07:00
Stanislav Malyshev fd28010e20 5.4.32 RC1 2014-08-05 21:03:35 -07:00
Daniel Lowrey a51bf0cadf Add SO_REUSEPORT + SO_BROADCAST support via socket stream context option 2014-08-05 23:13:04 -04:00
Michael Wallner 29eb0ea686 BFN 2014-08-05 15:48:35 +02:00
Michael Wallner b2157ca540 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  BFN
  Fixed Bug #67724
2014-08-05 15:48:12 +02:00
Michael Wallner 442629f81d BFN 2014-08-05 15:47:52 +02:00
Michael Wallner fa57c291bb Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed Bug #67724
2014-08-05 15:46:52 +02:00
Michael Wallner e4ff7f2ee3 Fixed Bug #67724
(chained zlib filters silently fail with large amounts of data)

Use the same buffer size zlib uses internally to avoid
Z_DATA_ERROR on massively compressed data
2014-08-05 15:44:43 +02:00
Remi Collet 3cc2d5df0d typo 2014-08-04 11:09:18 +02:00
Remi Collet 71a3076560 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  typo
  typo
2014-08-04 11:09:04 +02:00
Remi Collet 0ab5854863 typo 2014-08-04 11:08:54 +02:00
Remi Collet fa27974ec0 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  typo
2014-08-04 11:08:41 +02:00
Remi Collet f59506cd27 typo 2014-08-04 11:08:30 +02:00
Remi Collet 3bb5682ed1 NEWS 2014-08-04 10:50:56 +02:00
Remi Collet 6dcc3f9840 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  NEWS
  NEWS
  Fixed Bug #66901 php-gd 'c_color' NULL pointer dereference
2014-08-04 10:50:33 +02:00
Remi Collet 1158563958 NEWS 2014-08-04 10:48:29 +02:00
Remi Collet a45b8874fb Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  NEWS
  Fixed Bug #66901 php-gd 'c_color' NULL pointer dereference
2014-08-04 10:47:54 +02:00
Remi Collet d3b5ed0787 NEWS 2014-08-04 10:46:53 +02:00
Remi Collet cf4753691d Fixed Bug #66901 php-gd 'c_color' NULL pointer dereference
Upstream https://bitbucket.org/libgd/gd-libgd/commits/463c3bd09bfe8e924e19acad7a2a6af16953a704

Notice: this fix don't manage monochrome/monovisual values
but just fix the security issue CVE-2014-2497
failing when trying to load such an image
2014-08-04 10:42:39 +02:00
Anatol Belski d730675be5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  backport the fix for bug #67739
2014-08-04 09:58:47 +02:00
Anatol Belski e0c1fa30c4 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  backport the fix for bug #67739
2014-08-04 09:57:59 +02:00
Anatol Belski ae74549239 backport the fix for bug #67739 2014-08-04 09:57:08 +02:00
Stanislav Malyshev 12d76b8cce Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  add test
  Fix bug #67705 (extensive backtracking in rule regular expression)

Conflicts:
	ext/fileinfo/data_file.c
	ext/fileinfo/libmagic/softmagic.c
	ext/fileinfo/magicdata.patch
2014-08-04 00:12:43 -07:00
Stanislav Malyshev 28786a2f82 Fix bug #67705 (extensive backtracking in rule regular expression) 2014-08-04 00:09:15 -07:00
Stanislav Malyshev 9b9aa4b811 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  add test
2014-08-04 00:08:17 -07:00
Stanislav Malyshev 61ec9b5b0f add test 2014-08-04 00:08:08 -07:00
Stanislav Malyshev c9e114a451 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #67705 (extensive backtracking in rule regular expression)
2014-08-04 00:06:22 -07:00
Stanislav Malyshev eeaec70758 Fix bug #67705 (extensive backtracking in rule regular expression) 2014-08-04 00:05:40 -07:00
Mauricio Vieira 8afe869cab xmlwriter_full_end_element tests 2014-08-02 22:39:12 -03:00
Mauricio Vieira 51be35cf38 Tests for writeAttributeNS and xmlwriter_write_attribute_ns 2014-08-02 22:39:11 -03:00
Andrey Hristov f5deb18b20 Merge branch 'PHP-5.5' into PHP-5.6 2014-07-31 21:28:09 +03:00
Andrey Hristov 95febf26c6 Fix wrong lenght size 2014-07-31 21:27:51 +03:00
Johannes Schlüter 990ecc12fc PHP 5.3.29RC1 2014-07-31 15:40:51 +02:00
Stanislav Malyshev 0fe07a0e74 Fix missing type checks in various functions 2014-07-31 15:36:24 +02:00
Peter Cowburn 6a4f0b14eb Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Bug #51096 - Remove unnecessary ? for first/last day of
2014-07-31 14:34:50 +01:00
Peter Cowburn c2f2d5c8fc Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Bug #51096 - Remove unnecessary ? for first/last day of

Conflicts:
	ext/date/lib/parse_date.c
2014-07-31 14:33:55 +01:00
Peter Cowburn bff84d7c18 Merge branch 'pull-request/754' into PHP-5.4 2014-07-31 14:30:39 +01:00
Peter Cowburn 358aedc454 Bug #51096 - Remove unnecessary ? for first/last day of 2014-07-31 14:21:38 +01:00
Tjerk Meesters 8f345a7148 Moved streams related functions to xp_ssl.c 2014-07-31 12:17:17 +08:00
Keyur Govande 4383ac04a0 Remove duplicate NEWS 2014-07-30 18:48:43 +00:00
Keyur Govande 33c4b9d5a6 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Update NEWS
  Update NEWS
2014-07-30 18:41:13 +00:00
Keyur Govande b96224625c Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Update NEWS
2014-07-30 18:39:59 +00:00
Keyur Govande 7b60430a8f Update NEWS 2014-07-30 18:39:23 +00:00
Keyur Govande 752c40d2ec Update NEWS 2014-07-30 18:38:48 +00:00
Keyur Govande 0a29e4731e Update NEWS 2014-07-30 18:33:19 +00:00
Michael Wallner b3b25e1b70 BFN 2014-07-30 20:14:03 +02:00
Michael Wallner ceadf783fe Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  BFN
  Fixed bug #67715 (php-milter does not build and crashes randomly).
2014-07-30 20:13:39 +02:00
Michael Wallner 48cadf242d BFN 2014-07-30 20:13:17 +02:00
Michael Wallner 6ed9991a6f Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed bug #67715 (php-milter does not build and crashes randomly).
2014-07-30 20:12:50 +02:00
Michael Wallner 12b2127b72 Fixed bug #67715 (php-milter does not build and crashes randomly). 2014-07-30 20:12:13 +02:00
Rasmus Lerdorf 7fe21ce0f3 Merge commit '8b9719d' into PHP-5.6
* commit '8b9719d':
  We need to turn off any strict mode here for this warning to show up
2014-07-30 12:23:36 -04:00
Rasmus Lerdorf 579c9066a0 Merge commit '8b9719d' into PHP-5.5
* commit '8b9719d':
  We need to turn off any strict mode here for this warning to show up
2014-07-30 12:23:24 -04:00
Rasmus Lerdorf 8b9719d8b9 We need to turn off any strict mode here for this warning to show up 2014-07-30 12:22:48 -04:00
Bob Weinand d5ddd2dbb2 Disable restrictions regarding arrays in constants at run-time.
For the discussion around it, see the thread on the mailing list:
http://www.mail-archive.com/internals@lists.php.net/msg68245.html
2014-07-30 17:57:07 +02:00
Bob Weinand 354ee12b73 Revert "Fix bug #67064 in a BC safe way"
This reverts commit 1a4a9eede5.

Conflicts:
	ext/standard/array.c
	ext/standard/tests/array/bug67064.phpt
2014-07-30 17:18:05 +02:00
Tjerk Meesters f925892920 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Updated NEWS for #67693
  Fixed bug #67693 - incorrect push to the empty array
2014-07-30 18:27:29 +08:00
Tjerk Meesters 52f4587e8a Updated NEWS for #67693 2014-07-30 18:17:36 +08:00
Tjerk Meesters e9967292c3 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Updated NEWS for #67693
  Fixed bug #67693 - incorrect push to the empty array
2014-07-30 18:17:13 +08:00
Tjerk Meesters b3466f862f Updated NEWS for #67693 2014-07-30 18:16:56 +08:00
Tjerk Meesters da3add26cf Fixed bug #67693 - incorrect push to the empty array 2014-07-30 18:15:14 +08:00
Bob Weinand e3605383cd Merge pull request #106 from EagleEyeJohn/patch-1
Update README.md
2014-07-22 04:49:41 +02:00
Stanislav Malyshev 1ffb7fddc2 update NEWS 2014-07-18 16:49:00 -07:00
Stanislav Malyshev c74efe1b2e Fix bug #67492: unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion
Conflicts:
	ext/spl/spl_array.c
	ext/spl/tests/SplObjectStorage_unserialize_bad.phpt
2014-07-18 16:31:59 -07:00
Xinchen Hui b5051ff939 Fixed bug #67359 (Segfault in recursiveDirectoryIterator) 2014-07-18 16:28:58 -07:00
Stanislav Malyshev e2ba5c7987 Fix bug #66127 (Segmentation fault with ArrayObject unset) 2014-07-18 16:28:16 -07:00
Stanislav Malyshev 8e9777a1f1 Fix test - because of big #67397 we don't allow overlong locales anymore 2014-07-18 16:27:11 -07:00
Stanislav Malyshev e644aad3f9 Fix bug #67397 (Buffer overflow in locale_get_display_name->uloc_getDisplayName (libicu 4.8.1)) 2014-07-18 16:26:51 -07:00
Stanislav Malyshev 8ab4e2e90d Fix bug #67349: Locale::parseLocale Double Free 2014-07-18 16:26:05 -07:00
Stanislav Malyshev b512adf78d Fixed bug #67399 (putenv with empty variable may lead to crash)
Conflicts:
	ext/standard/basic_functions.c
2014-07-18 16:24:54 -07:00
Remi Collet 2fe5bcbeb5 Fixed Bug #67413 fileinfo: cdf_read_property_info insufficient boundary chec
Upstream:
https://github.com/file/file/commit/93e063ee374b6a75729df9e7201fb511e47e259d

Adapted for C standard.
2014-07-18 16:21:01 -07:00
Remi Collet 892def5f12 Bug #67412 fileinfo: cdf_count_chain insufficient boundary check
Upstream:
https://github.com/file/file/commit/40bade80cbe2af1d0b2cd0420cebd5d5905a2382
2014-07-18 16:20:19 -07:00
Remi Collet 8d1d038509 Fixed Bug #67411 fileinfo: cdf_check_stream_offset insufficient boundary check
Upstream:
https://github.com/file/file/commit/36fadd29849b8087af9f4586f89dbf74ea45be67

Conflicts:
	ext/fileinfo/libmagic/cdf.c
2014-07-18 16:19:30 -07:00
Remi Collet 6bd5a06894 Fixed Bug #67410 fileinfo: mconvert incorrect handling of truncated pascal string size
Upstream
https://github.com/file/file/commit/27a14bc7ba285a0a5ebfdb55e54001aa11932b08
2014-07-18 16:17:36 -07:00
Stanislav Malyshev ec002bd837 Fix bug #67498 - phpinfo() Type Confusion Information Leak Vulnerability 2014-07-18 16:14:42 -07:00
Remi Collet 52de149ebc Fix bug #67326 fileinfo: cdf_read_short_sector insufficient boundary check
Upstream fix https://github.com/file/file/commit/6d209c1c489457397a5763bca4b28e43aac90391.patch
Only revelant part applied
2014-07-18 16:13:07 -07:00
Stanislav Malyshev 2326401fc1 fix bug #67253: timelib_meridian_with_check out-of-bounds read
Conflicts:
	ext/date/lib/parse_date.c
2014-07-18 16:11:54 -07:00
Stanislav Malyshev 7f527897fe Fix bug #67252: convert_uudecode out-of-bounds read 2014-07-18 16:05:52 -07:00
Stanislav Malyshev d4b67896ec Fix bug #67250 (iptcparse out-of-bounds read) 2014-07-18 16:02:52 -07:00
Stanislav Malyshev 84605098bc Fix bug #67247 spl_fixedarray_resize integer overflow 2014-07-18 15:59:59 -07:00
Stanislav Malyshev ee1ab62763 Fix bug #67328 (fileinfo: numerous file_printf calls resulting in performance degradation)
Upstream patch: https://github.com/file/file/commit/b8acc83781d5a24cc5101e525d15efe0482c280d
2014-07-18 15:52:00 -07:00
Stanislav Malyshev d77ea459bd Fix bug #67327: fileinfo: CDF infinite loop in nelements DoS
Upstream fix: https://github.com/file/file/commit/f97486ef5dc3e8735440edc4fc8808c63e1a3ef0
2014-07-18 15:50:58 -07:00
Anatol Belski 44be7b7f27 backport this piece from 5.6, related to the #66307 fix
Conflicts:
	ext/fileinfo/libmagic/readcdf.c
2014-07-18 15:50:04 -07:00
Anatol Belski 0335d2ef3e Fixed bug #66307 Fileinfo crashes with powerpoint files
Conflicts:
	ext/fileinfo/libmagic/readcdf.c
	ext/fileinfo/tests/finfo_file_002.phpt
2014-07-18 15:48:18 -07:00
Remi Collet a0bb3fd679 Fixed bug #66060 (Heap buffer over-read in DateInterval)
Conflicts:
	ext/date/lib/parse_iso_intervals.c
2014-07-18 15:39:37 -07:00
Stanislav Malyshev eca037a51d Fix bug #65873 - Integer overflow in exif_read_data() 2014-07-18 15:37:15 -07:00
Xinchen Hui f3230e3522 let make test report the run-test result 2014-07-18 15:33:59 -07:00
Xinchen Hui 920e81b6f1 Merge branch 'PHP-5.5' of https://git.php.net/repository/php-src into PHP-5.5 2014-07-18 15:50:42 +08:00
Xinchen Hui 54267f40c6 Merge branch 'PHP-5.5' of https://git.php.net/repository/php-src into PHP-5.5 2014-07-18 15:09:57 +08:00
John Nicholls 44d61576b9 Update README.md
correct spelling of "exert"
2014-07-17 15:43:24 +01:00
Xinchen Hui 21654a671f Merge branch 'PHP-5.5' of https://git.php.net/repository/php-src into PHP-5.5 2014-07-17 12:06:12 +08:00
Xinchen Hui 41eb63e78f Fixed tests affect by local ini 2014-07-09 18:34:40 +08:00
Bob Weinand 18c9f8fbb9 Merge sapi/phpdbg into PHP-5.6 2014-07-06 01:17:50 +02:00
Bob Weinand 856801b84f Merge sapi/phpdbg into PHP-5.6 2014-06-29 12:49:10 +02:00
Bob Weinand 05955fbce5 Merge sapi/phpdbg into PHP-5.6 2014-06-25 13:56:45 +02:00
Remi Collet 7efbccd60f Better fix for phpdbg + libedit
- fix include
- disable coloured prompt only with libedit
2014-06-23 10:21:19 +02:00
Remi Collet 679d08e8ba Fix https://github.com/krakjoe/phpdbg/issues/91
Enable edit feature when build with libedit.

Notice: coloured prompt only enable with READLINE
2014-06-23 10:21:19 +02:00
Lior Kaplan 55d97085a4 Update copyright year to 2014 2014-06-16 23:34:50 +03:00
Bob Weinand 79230e5561 Merge sapi/phpdbg into PHP-5.6 2014-06-15 15:47:14 +02:00
Stanislav Malyshev 3c328f0984 Fix bug #67251 - date_parse_from_format out-of-bounds read
Conflicts:
	ext/date/lib/parse_date.c
	ext/date/lib/parse_date.re
2014-06-15 00:33:24 -07:00
Stanislav Malyshev d780c2a673 Fix bug #67249: printf out-of-bounds read 2014-06-13 16:43:56 -07:00
Sara Golemon d400b74296 Fix potential segfault in dns_get_record()
If the remote sends us a packet with a malformed TXT record,
we could end up trying to over-consume the packet and wander
off into overruns.
2014-06-13 16:42:55 -07:00
Remi Collet 08334293f8 Fix bug #67390 insecure temporary file use in the configure script 2014-06-13 16:41:13 -07:00
Bob Weinand 5e6c5e9569 Merge sapi/phpdbg into PHP-5.6 2014-06-09 10:06:29 +02:00
Bob Weinand b264783d63 Merge sapi/phpdbg into PHP-5.6 2014-06-04 02:18:39 +02:00
Bob Weinand 3200d99763 Merge sapi/phpdbg into PHP-5.6 2014-06-03 21:15:02 +00:00
Bob Weinand d4b5ef2e4a Merge sapi/phpdbg into PHP-5.6 2014-05-03 11:40:25 +02:00
Bob Weinand eae7a94fe0 Added stdion/stdout/stderr constsnts and their php:// wrappers
Fixes issue #85
2014-05-01 11:43:46 +02:00
Anatol Belski a1edc8e396 Merge remote-tracking branch 'phpdbg/master' into PHP-5.6
* phpdbg/master:
  C89 compat
2014-04-27 18:01:26 +02:00
Anatol Belski 9a8123fabb Merge remote-tracking branch 'phpdbg/master' into PHP-5.6
* phpdbg/master:
  removed /EHa as __try/__catch syntax is used anyway
  fix ZEND_DEBUG usage
  fix CFLAGS_PHPDBGS and some formatting
2014-04-26 00:15:32 +02:00
Anatol Belski 91b599f4a3 Merge remote-tracking branch 'phpdbg/master' into PHP-5.6 2014-04-24 11:05:52 +02:00
Bob Weinand 3e3dcde8d7 Merge sapi/phpdbg into PHP-5.6 2014-04-21 23:30:08 +02:00
Mateusz Kocielski ea12799eff Fixed wrong indentation 2014-03-18 10:49:28 +01:00
Mateusz Kocielski b20abadf90 Fix phpdbg build on FreeBSD
Added missing netinet/in.h header.
2014-03-18 09:51:39 +01:00
Veres Lajos 57294d6824 a few typofixes 2014-02-14 17:16:17 +02:00
krakjoe 2462d2764a windows 2014-02-02 15:14:25 +00:00
krakjoe f1a6ca29fb clean symbols 2014-02-02 15:10:17 +00:00
krakjoe d260b5d240 another patch from upstream 2014-02-02 14:58:39 +00:00
krakjoe 395a936397 woops 2014-02-02 14:50:32 +00:00
krakjoe 1deeec0ba8 better use of tmpnam/mkstemp 2014-02-02 14:42:31 +00:00
krakjoe 591e64ff58 update version 2014-02-02 14:04:47 +00:00
krakjoe 270e487d41 remove use of zend directly, avoid leaks/bugs in modules etc 2014-02-02 13:43:43 +00:00
Anatol Belski 137feda86a fix C89 compat 2014-01-19 02:05:10 +01:00
Johannes Schlüter 2dd38009ca Merge branch 'phpdbg' into PHP-5.6 2014-01-18 13:52:27 +01:00
Xinchen Hui 75bad44801 Bump year 2014-01-03 11:08:10 +08:00
krakjoe 2b111a3b14 update version output 2013-12-27 18:03:11 +00:00
Anatol Belski b36bae023e fix c89 compat 2013-12-25 23:43:20 +01:00
Anatol Belski 868dbe7baf fixed incompatible pointer in phpdbg on win64 2013-12-24 21:08:33 +01:00
Bob Weinand 36f487a32c Fixed #18
Errors not displaying in some configurations
2013-12-24 13:19:18 +01:00
Bob Weinand 31c15f0d17 Fixed credits in phpdbg.* files 2013-12-24 00:34:23 +01:00
Bob Weinand 02352bee60 Added breaking upon fatal-ish error 2013-12-24 00:30:37 +01:00
Joe Watkins a1387ae088 credits file for phpdbg 2013-12-24 00:16:47 +01:00
Bob Weinand 4350937027 Merge branch 'master' of sapi/phpdbg into PHP-5.6
Including phpdbg.
2013-12-20 14:27:51 +01:00
490 changed files with 39252 additions and 21476 deletions

No files matched your search

+1
View File
@@ -19,6 +19,7 @@
*.tgz
*.tar.gz
*.tar.bz2
*.tar.xz
.FBCIndex
.FBCLockFolder
.deps
+1 -1
View File
@@ -42,5 +42,5 @@ before_script:
# Run PHPs run-tests.php
script:
- ./sapi/cli/php run-tests.php -p `pwd`/sapi/cli/php -g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP" --show-diff --set-timeout 120
- ./sapi/cli/php run-tests.php -p `pwd`/sapi/cli/php -g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP" --show-diff --set-timeout 120 -s
- ./sapi/cli/php sapi/phpdbg/tests/run-tests.php -diff2stdout --phpdbg sapi/phpdbg/phpdbg
+1 -1
View File
@@ -42,7 +42,7 @@ Exceptions:
4. When writing functions that deal with strings, be sure to remember
that PHP holds the length property of each string, and that it
shouldn't be calculated with strlen(). Write your functions in a such
shouldn't be calculated with strlen(). Write your functions in such
a way so that they'll take advantage of the length property, both
for efficiency and in order for them to be binary-safe.
Functions that change strings and obtain their new lengths while
+12
View File
@@ -385,6 +385,12 @@ MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: hash
PRIMARY MAINTAINER: Sara Golemon <pollita@php.net>, Mike Wallner <mike@php.net>, Anatol Belski <ab@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.1.2
-------------------------------------------------------------------------------
EXTENSION: iconv
PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
MAINTENANCE: Maintained
@@ -438,6 +444,12 @@ PRIMARY MAINTAINER: Frank M. Kromann
MAINTENANCE: Unknown
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: opcache
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>, Xinchen Hui <laruence@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.5.0
-------------------------------------------------------------------------------
EXTENSION: openssl
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>, Pierre-Alain Joye <pajoye@php.net>
MAINTENANCE: Maintained
+1 -1
View File
@@ -155,7 +155,7 @@ Table of Contents
a list of all available options along with short explanations running
./configure --help. Our manual documents the different options
separately. You will find the core options in the appendix, while the
different extension specific options are descibed on the reference
different extension specific options are described on the reference
pages.
When PHP is configured, you are ready to build the module and/or
+9809 -502
View File
File diff suppressed because it is too large. Load diff
+8 -4
View File
@@ -45,15 +45,16 @@ Currently we have the following branches in use::
master The active development branch.
PHP-5.6 Is used to release the PHP 5.6.x series. This is a current
stable version and is open for bugfixes only.
PHP-5.5 Is used to release the PHP 5.5.x series. This is a current
stable version and is open for bugfixes only.
PHP-5.4 Is used to release the PHP 5.4.x series. This is a current
stable version and is open for bugfixes only.
PHP-5.3 Is used to release the PHP 5.3.x series. This is currently
in extended support and open forsecurity fixes only. Triaged
via security@php.net
PHP-5.3 This branch is closed.
PHP-5.2 This branch is closed.
@@ -61,9 +62,12 @@ Currently we have the following branches in use::
PHP-4.4 This branch is closed.
PHP-X.Y.Z These branches are used for the release managers for tagging
the releases, hence they are closed to the general public.
The next few rules are more of a technical nature::
1. All changes should first go to the lowest branch (i.e. 5.3) and then
1. All changes should first go to the lowest branch (i.e. 5.4) and then
get merged up to all other branches. If a change is not needed for
later branches (i.e. fixes for features which where dropped from later
branches) an empty merge should be done.
+3 -3
View File
@@ -8,7 +8,7 @@ the original run-tests.php script. server-tests is *not* used by
'make test'. server-tests was developed to provide support for
testing PHP under it's primary environment, HTTP, and can run the
PHP tests under any of the SAPI modules that are direct executables,
or are accessable via HTTP.
or are accessible via HTTP.
[New features]
----------------
@@ -95,7 +95,7 @@ include:
$filename full native path to file, will become PATH_TRANSLATED
$filepath =dirname($filename)
$scriptname this is what will become SCRIPT_NAME unless you override it
$docroot the equivelant of DOCUMENT_ROOT under Apache
$docroot the equivalent of DOCUMENT_ROOT under Apache
$cwd the directory that the test is being initiated from
$this->conf all server-tests configuration vars
$this->env all environment variables that will get passed to the test
@@ -105,7 +105,7 @@ include:
This section is also eval'd, and is similar in nature to --ENV--. However,
this section is used to build the url used in an HTTP request. Valid values
to set in this section would include:
SCRIPT_NAME The inital part of the request url
SCRIPT_NAME The initial part of the request url
PATH_INFO The pathinfo part of a request url
FRAGMENT The fragment section of a url (after #)
QUERY_STRING The query part of a url (after ?)
+23
View File
@@ -89,6 +89,10 @@ PHP 5.6 UPGRADE NOTES
- Added a function for timing attack safe string comparison
(https://wiki.php.net/rfc/timing_attack)
- Added the __debugInfo() magic method to allow userland classes to implement
the get_debug_info API previously available only to extensions.
(https://wiki.php.net/rfc/debug-info)
- Added gost-crypto (CryptoPro S-box) hash algorithm.
- Stream wrappers verify peer certificates and host names by default in
@@ -213,6 +217,7 @@ PHP 5.6 UPGRADE NOTES
- Strings:
substr_compare() now allows $length to be zero.
pack() and unpack() now support 64-bit format specifiers: q, Q, J and P.
- Crypt:
crypt() will now raise an E_NOTICE error if the salt parameter is omitted.
@@ -228,6 +233,13 @@ PHP 5.6 UPGRADE NOTES
crypto method from the context is used as a fallback if no crypto method is
specified at call-time.
- Reflection:
ReflectionClass::newInstanceWithoutConstructor previously didn't allow the
instantiation of any internal class which used custom object storage
(overriding the default create_object handler), this was changed to only
reject the instantiation of such classes if the class is also marked as
final.
- XMLReader:
XMLReader::getAttributeNs and XMLReader::getAttributeNo now return NULL if
the attribute could not be found, just like XMLReader::getAttribute.
@@ -245,12 +257,20 @@ PHP 5.6 UPGRADE NOTES
Manipulated serialization strings for objects implementing Serializable by
replacing "C:" with "O:" at the start will now produce an error.
- parse_ini_file():
- parse_ini_string():
Added scanner mode INI_SCANNER_TYPED to yield typed .ini values.
For PHP >= 5.6.1
========================================
6. New Functions
========================================
- GMP:
Added gmp_root($a, $nth) and gmp_rootrem($a, $nth) for calculating nth roots.
Added gmp_import($data, $word_size = 1, $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN) in PHP 5.6.1.
Added gmp_export($gmpnumber, $word_size = 1, $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN) in PHP 5.6.1.
Added gmp_random_range() and gmp_random_bits() in PHP 5.6.3.
- Hash
Added hash_equals($known_string, $user_string)
@@ -358,6 +378,9 @@ PHP 5.6 UPGRADE NOTES
- Added LISTEN/NOTIFY support via PDO::pgsqlGetNotify / PDO::pgsqlGetPid()
as described in https://bugs.php.net/bug.php?id=42614.
- DOM:
- DOMNode::textContent is now a writeable property. (>= 5.6.1)
========================================
10. New Global Constants
========================================
+5 -13
View File
@@ -1,6 +1,6 @@
$Id$
UPGRADE NOTES - PHP X.Y
PHP 5.6 INTERNALS UPGRADE NOTES
1. Internal API changes
a. Addition of do_operation and compare object handlers
@@ -12,9 +12,8 @@ UPGRADE NOTES - PHP X.Y
g. Additional str_* APIs
h. Addition of zend_hash_reindex
i. Addition of zend_hash_splice
j. An additional parameter is sent to Countable::count()
k. Unserialization of manipulated object strings
l. Removal of IS_CONSTANT_ARRAY and IS_CONSTANT_INDEX hack
j. Unserialization of manipulated object strings
k. Removal of IS_CONSTANT_ARRAY and IS_CONSTANT_INDEX hack
2. Build system changes
a. Unix build system changes
@@ -185,14 +184,7 @@ UPGRADE NOTES - PHP X.Y
IAP of ht (for compatibility with the previous implementation) and resets
CVs if the passed hashtable is the global symbol table.
j. An additional parameter is sent to Countable::count()
That parameter denotes the $mode passed to count; it shouldn't affect any
userland code, but any zend_parse_parameters() used with no arguments should
fail. Extensions which implement Countable internally, need to accept one
optional long as parameter.
k. Unserialization of manipulated object strings
j. Unserialization of manipulated object strings
Strings requiring unserialization of objects are now explicitly checked
whether the object they contain implements the Serializable interface.
@@ -207,7 +199,7 @@ UPGRADE NOTES - PHP X.Y
fixed at the appropriate place by checking for the presence of the
serialize callback in the class entry.
l. Removal of IS_CONSTANT_ARRAY and IS_CONSTANT_INDEX hack
k. Removal of IS_CONSTANT_ARRAY and IS_CONSTANT_INDEX hack
These two #defines disappeared. Instead we have now IS_CONSTANT_AST which
covers also the functionality IS_CONSTANT_ARRAY bid and furthermore the
+1 -1
View File
@@ -19,6 +19,6 @@ $b = new b();
$b->test();
--EXPECTF--
Strict Standards: Declaration of b::test() should be compatible with a::test($arg = c::TESTCONSTANT) in %s/bug67436/b.php on line %d
Strict Standards: Declaration of b::test() should be compatible with a::test($arg = c::TESTCONSTANT) in %s%ebug67436%eb.php on line %d
b::test()
a::test(c::TESTCONSTANT)
+44
View File
@@ -0,0 +1,44 @@
--TEST--
Bug #67633: A foreach on an array returned from a function not doing copy-on-write
--FILE--
<?php
function id($x) {
return $x;
}
function &ref_id(&$x) {
return $x;
}
$c = 'c';
$array = ['a', 'b', $c];
foreach(id($array) as &$v) {
$v .= 'q';
}
var_dump($array);
foreach(ref_id($array) as &$v) {
$v .= 'q';
}
var_dump($array);
?>
--EXPECT--
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(3) {
[0]=>
string(2) "aq"
[1]=>
string(2) "bq"
[2]=>
&string(2) "cq"
}
+27
View File
@@ -0,0 +1,27 @@
--TEST--
Bug #67938: Segfault when extending interface method with variadic
--FILE--
<?php
interface TestInterface {
public function foo();
public function bar(array $bar);
}
class Test implements TestInterface {
public function foo(...$args) {
echo __METHOD__, "\n";
}
public function bar(array $bar, ...$args) {
echo __METHOD__, "\n";
}
}
$obj = new Test;
$obj->foo();
$obj->bar([]);
?>
--EXPECT--
Test::foo
Test::bar
+16
View File
@@ -0,0 +1,16 @@
--TEST--
Bug #67985 - Last used array index not copied to new array at assignment
--FILE--
<?php
$a = ['zero', 'one', 'two'];
unset($a[2]);
$b = $a;
$a[] = 'three';
$b[] = 'three';
var_dump($a === $b);
?>
--EXPECT--
bool(true)
+21
View File
@@ -0,0 +1,21 @@
--TEST--
Bug #68118: $a->foo .= 'test'; can leave $a->foo undefined
--FILE--
<?php
set_error_handler(function() {
$obj = new stdClass;
$obj->test = 'meow';
return true;
});
$a = new stdClass;
$a->undefined .= 'test';
var_dump($a);
?>
--EXPECT--
object(stdClass)#2 (1) {
["undefined"]=>
string(4) "test"
}
+18
View File
@@ -0,0 +1,18 @@
--TEST--
Bug #68370 "unset($this)" can make the program crash
--FILE--
<?php
class C {
public function test() {
unset($this);
return get_defined_vars();
}
}
$c = new C();
$x = $c->test();
print_r($x);
unset($c, $x);
--EXPECTF--
Array
(
)
+36
View File
@@ -0,0 +1,36 @@
--TEST--
Bug #68446 (Array constant not accepted for array parameter default)
--FILE--
<?php
const FOO = [1];
const BAR = null;
function a(array $a = FOO) {
var_dump($a);
}
function b(array $b = BAR) {
var_dump($b);
}
b(null);
b([]);
b();
a([]);
a();
a(null);
?>
--EXPECTF--
NULL
array(0) {
}
NULL
array(0) {
}
array(1) {
[0]=>
int(1)
}
Catchable fatal error: Argument 1 passed to a() must be of the type array, null given, called in %s on line %d and defined in %s on line %d
+33 -2
View File
@@ -22,7 +22,7 @@ class foo {
var_dump(foo::bar);
var_dump(a); // Eventually allow that later with array dereferencing of constants
var_dump(a, a[0], a[2], a[2][1], a[3]);
?>
--EXPECTF--
@@ -32,4 +32,35 @@ int(1)
int(4)
int(1)
Fatal error: Arrays are not allowed in constants at run-time in %s on line %d
Notice: Undefined offset: 3 in %s on line %d
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(2) {
[0]=>
int(3)
[1]=>
array(1) {
[0]=>
int(4)
}
}
}
int(1)
array(2) {
[0]=>
int(3)
[1]=>
array(1) {
[0]=>
int(4)
}
}
array(1) {
[0]=>
int(4)
}
NULL
+9 -1
View File
@@ -12,4 +12,12 @@ var_dump(test::TEST);
echo "Done\n";
?>
--EXPECTF--
Fatal error: Arrays are not allowed in constants at run-time in %s on line %d
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
Done
+2 -2
View File
@@ -7,5 +7,5 @@ const C = array();
var_dump(C);
?>
--EXPECTF--
Fatal error: Arrays are not allowed in constants at run-time in %sns_059.php on line 4
array(0) {
}
+15 -1
View File
@@ -822,6 +822,20 @@ void zend_shutdown(TSRMLS_D) /* {{{ */
zend_shutdown_timeout_thread();
#endif
zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
if (EG(active))
{
/*
* The order of destruction is important here.
* See bugs #65463 and 66036.
*/
zend_hash_reverse_apply(GLOBAL_FUNCTION_TABLE, (apply_func_t) zend_cleanup_function_data_full TSRMLS_CC);
zend_hash_reverse_apply(GLOBAL_CLASS_TABLE, (apply_func_t) zend_cleanup_user_class_data TSRMLS_CC);
zend_cleanup_internal_classes(TSRMLS_C);
zend_hash_reverse_apply(GLOBAL_FUNCTION_TABLE, (apply_func_t) clean_non_persistent_function_full TSRMLS_CC);
zend_hash_reverse_apply(GLOBAL_CLASS_TABLE, (apply_func_t) clean_non_persistent_class_full TSRMLS_CC);
}
zend_destroy_modules();
virtual_cwd_deactivate(TSRMLS_C);
@@ -887,7 +901,7 @@ ZEND_API void _zend_bailout(char *filename, uint lineno) /* {{{ */
/* }}} */
END_EXTERN_C()
void zend_append_version_info(const zend_extension *extension) /* {{{ */
ZEND_API void zend_append_version_info(const zend_extension *extension) /* {{{ */
{
char *new_info;
uint new_info_length;
+1 -1
View File
@@ -22,7 +22,7 @@
#ifndef ZEND_H
#define ZEND_H
#define ZEND_VERSION "2.6.0-dev"
#define ZEND_VERSION "2.6.0"
#define ZEND_ENGINE_2
+7 -10
View File
@@ -2499,7 +2499,7 @@ ZEND_API void zend_post_deactivate_modules(TSRMLS_D) /* {{{ */
/* }}} */
/* return the next free module number */
int zend_next_free_module(void) /* {{{ */
ZEND_API int zend_next_free_module(void) /* {{{ */
{
return zend_hash_num_elements(&module_registry) + 1;
}
@@ -2635,18 +2635,15 @@ ZEND_API ZEND_FUNCTION(display_disabled_function)
}
/* }}} */
static zend_function_entry disabled_function[] = {
ZEND_FE(display_disabled_function, NULL)
ZEND_FE_END
};
ZEND_API int zend_disable_function(char *function_name, uint function_name_length TSRMLS_DC) /* {{{ */
{
if (zend_hash_del(CG(function_table), function_name, function_name_length+1)==FAILURE) {
return FAILURE;
zend_internal_function *func;
if (zend_hash_find(CG(function_table), function_name, function_name_length+1, (void **)&func)==SUCCESS) {
func->arg_info = NULL;
func->handler = ZEND_FN(display_disabled_function);
return SUCCESS;
}
disabled_function[0].fname = function_name;
return zend_register_functions(NULL, disabled_function, CG(function_table), MODULE_PERSISTENT TSRMLS_CC);
return FAILURE;
}
/* }}} */
+1 -1
View File
@@ -233,7 +233,7 @@ typedef struct _zend_fcall_info_cache {
#define ZEND_FCI_INITIALIZED(fci) ((fci).size != 0)
int zend_next_free_module(void);
ZEND_API int zend_next_free_module(void);
BEGIN_EXTERN_C()
ZEND_API int zend_get_parameters(int ht, int param_count, ...);
+24 -6
View File
@@ -1931,8 +1931,11 @@ void zend_do_receive_param(zend_uchar op, znode *varname, const znode *initializ
if (class_type->u.constant.type == IS_ARRAY) {
cur_arg_info->type_hint = IS_ARRAY;
if (op == ZEND_RECV_INIT) {
if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL")) || Z_TYPE(initialization->u.constant) == IS_CONSTANT_AST) {
if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL"))) {
cur_arg_info->allow_null = 1;
} else if (IS_CONSTANT_TYPE(Z_TYPE(initialization->u.constant))) {
/* delay constant resolution and check to run-time */
cur_arg_info->allow_null = 0;
} else if (Z_TYPE(initialization->u.constant) != IS_ARRAY) {
zend_error_noreturn(E_COMPILE_ERROR, "Default value for parameters with array type hint can only be an array or NULL");
}
@@ -1940,8 +1943,11 @@ void zend_do_receive_param(zend_uchar op, znode *varname, const znode *initializ
} else if (class_type->u.constant.type == IS_CALLABLE) {
cur_arg_info->type_hint = IS_CALLABLE;
if (op == ZEND_RECV_INIT) {
if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL")) || Z_TYPE(initialization->u.constant) == IS_CONSTANT_AST) {
if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL"))) {
cur_arg_info->allow_null = 1;
} else if (IS_CONSTANT_TYPE(Z_TYPE(initialization->u.constant))) {
/* delay constant resolution and check to run-time */
cur_arg_info->allow_null = 0;
} else {
zend_error_noreturn(E_COMPILE_ERROR, "Default value for parameters with callable type hint can only be NULL");
}
@@ -1955,8 +1961,11 @@ void zend_do_receive_param(zend_uchar op, znode *varname, const znode *initializ
cur_arg_info->class_name = Z_STRVAL(class_type->u.constant);
cur_arg_info->class_name_len = Z_STRLEN(class_type->u.constant);
if (op == ZEND_RECV_INIT) {
if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL")) || Z_TYPE(initialization->u.constant) == IS_CONSTANT_AST) {
if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL"))) {
cur_arg_info->allow_null = 1;
} else if (IS_CONSTANT_TYPE(Z_TYPE(initialization->u.constant))) {
/* delay constant resolution and check to run-time */
cur_arg_info->allow_null = 0;
} else {
zend_error_noreturn(E_COMPILE_ERROR, "Default value for parameters with a class type hint can only be NULL");
}
@@ -3258,7 +3267,7 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
* go through all the parameters of the function and not just those present in the
* prototype. */
num_args = proto->common.num_args;
if ((fe->common.fn_flags & ZEND_ACC_VARIADIC)
if ((proto->common.fn_flags & ZEND_ACC_VARIADIC)
&& fe->common.num_args > proto->common.num_args) {
num_args = fe->common.num_args;
}
@@ -4246,8 +4255,8 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
/* make sure that the trait method is not from a class mentioned in
exclude_from_classes, for consistency */
if (cur_precedence->trait_method->ce == cur_precedence->exclude_from_classes[i]) {
zend_error_noreturn(E_COMPILE_ERROR,
if (cur_precedence->trait_method->ce == cur_precedence->exclude_from_classes[j]) {
zend_error(E_COMPILE_ERROR,
"Inconsistent insteadof definition. "
"The method %s is to be used from %s, but %s is also on the exclude list",
cur_method_ref->method_name,
@@ -6337,6 +6346,15 @@ void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, zno
/* save the location of FETCH_W instruction(s) */
open_brackets_token->u.op.opline_num = get_next_op_number(CG(active_op_array));
zend_do_end_variable_parse(array, BP_VAR_W, 0 TSRMLS_CC);
if (zend_is_function_or_method_call(array)) {
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_SEPARATE;
SET_NODE(opline->op1, array);
SET_UNUSED(opline->op2);
opline->result_type = IS_VAR;
opline->result.var = opline->op1.var;
}
} else {
is_variable = 0;
open_brackets_token->u.op.opline_num = get_next_op_number(CG(active_op_array));
+2
View File
@@ -686,6 +686,8 @@ ZEND_API void zend_cleanup_internal_class_data(zend_class_entry *ce TSRMLS_DC);
ZEND_API void zend_cleanup_internal_classes(TSRMLS_D);
ZEND_API int zend_cleanup_function_data(zend_function *function TSRMLS_DC);
ZEND_API int zend_cleanup_function_data_full(zend_function *function TSRMLS_DC);
ZEND_API int clean_non_persistent_function_full(zend_function *function TSRMLS_DC);
ZEND_API int clean_non_persistent_class_full(zend_class_entry **ce TSRMLS_DC);
ZEND_API void destroy_zend_function(zend_function *function TSRMLS_DC);
ZEND_API void zend_function_dtor(zend_function *function);
+19 -4
View File
@@ -608,7 +608,22 @@ ZEND_API int zend_verify_arg_error(int error_type, const zend_function *zf, zend
return 0;
}
static inline int zend_verify_arg_type(zend_function *zf, zend_uint arg_num, zval *arg, ulong fetch_type TSRMLS_DC)
static int is_null_constant(zval *default_value TSRMLS_DC)
{
if (IS_CONSTANT_TYPE(Z_TYPE_P(default_value))) {
zval constant = *default_value;
zval *constant_ptr = &constant;
zval_update_constant(&constant_ptr, 0 TSRMLS_CC);
if (Z_TYPE(constant) == IS_NULL) {
return 1;
}
zval_dtor(&constant);
}
return 0;
}
static inline int zend_verify_arg_type(zend_function *zf, zend_uint arg_num, zval *arg, ulong fetch_type, zval *default_value TSRMLS_DC)
{
zend_arg_info *cur_arg_info;
char *need_msg;
@@ -638,7 +653,7 @@ static inline int zend_verify_arg_type(zend_function *zf, zend_uint arg_num, zva
if (!ce || !instanceof_function(Z_OBJCE_P(arg), ce TSRMLS_CC)) {
return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, need_msg, class_name, "instance of ", Z_OBJCE_P(arg)->name TSRMLS_CC);
}
} else if (Z_TYPE_P(arg) != IS_NULL || !cur_arg_info->allow_null) {
} else if (Z_TYPE_P(arg) != IS_NULL || !(cur_arg_info->allow_null || (default_value && is_null_constant(default_value TSRMLS_CC)))) {
need_msg = zend_verify_arg_class_kind(cur_arg_info, fetch_type, &class_name, &ce TSRMLS_CC);
return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, need_msg, class_name, zend_zval_type_name(arg), "" TSRMLS_CC);
}
@@ -649,7 +664,7 @@ static inline int zend_verify_arg_type(zend_function *zf, zend_uint arg_num, zva
return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be of the type array", "", "none", "" TSRMLS_CC);
}
if (Z_TYPE_P(arg) != IS_ARRAY && (Z_TYPE_P(arg) != IS_NULL || !cur_arg_info->allow_null)) {
if (Z_TYPE_P(arg) != IS_ARRAY && (Z_TYPE_P(arg) != IS_NULL || !(cur_arg_info->allow_null || (default_value && is_null_constant(default_value TSRMLS_CC))))) {
return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be of the type array", "", zend_zval_type_name(arg), "" TSRMLS_CC);
}
break;
@@ -658,7 +673,7 @@ static inline int zend_verify_arg_type(zend_function *zf, zend_uint arg_num, zva
if (!arg) {
return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be callable", "", "none", "" TSRMLS_CC);
}
if (!zend_is_callable(arg, IS_CALLABLE_CHECK_SILENT, NULL TSRMLS_CC) && (Z_TYPE_P(arg) != IS_NULL || !cur_arg_info->allow_null)) {
if (!zend_is_callable(arg, IS_CALLABLE_CHECK_SILENT, NULL TSRMLS_CC) && (Z_TYPE_P(arg) != IS_NULL || !(cur_arg_info->allow_null || (default_value && is_null_constant(default_value TSRMLS_CC))))) {
return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be callable", "", zend_zval_type_name(arg), "" TSRMLS_CC);
}
break;
+8 -11
View File
@@ -109,7 +109,7 @@ static int clean_non_persistent_function(zend_function *function TSRMLS_DC) /* {
}
/* }}} */
static int clean_non_persistent_function_full(zend_function *function TSRMLS_DC) /* {{{ */
ZEND_API int clean_non_persistent_function_full(zend_function *function TSRMLS_DC) /* {{{ */
{
return (function->type == ZEND_INTERNAL_FUNCTION) ? ZEND_HASH_APPLY_KEEP : ZEND_HASH_APPLY_REMOVE;
}
@@ -121,7 +121,7 @@ static int clean_non_persistent_class(zend_class_entry **ce TSRMLS_DC) /* {{{ */
}
/* }}} */
static int clean_non_persistent_class_full(zend_class_entry **ce TSRMLS_DC) /* {{{ */
ZEND_API int clean_non_persistent_class_full(zend_class_entry **ce TSRMLS_DC) /* {{{ */
{
return ((*ce)->type == ZEND_INTERNAL_CLASS) ? ZEND_HASH_APPLY_KEEP : ZEND_HASH_APPLY_REMOVE;
}
@@ -1236,6 +1236,10 @@ ZEND_API void zend_timeout(int dummy) /* {{{ */
#ifdef ZEND_WIN32
static LRESULT CALLBACK zend_timeout_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) /* {{{ */
{
#ifdef ZTS
THREAD_T thread_id = (THREAD_T)wParam;
#endif
switch (message) {
case WM_DESTROY:
PostQuitMessage(0);
@@ -1250,7 +1254,7 @@ static LRESULT CALLBACK zend_timeout_WndProc(HWND hWnd, UINT message, WPARAM wPa
#endif
SetTimer(timeout_window, wParam, lParam*1000, NULL);
#ifdef ZTS
tsrm_ls = ts_resource_ex(0, &wParam);
tsrm_ls = ts_resource_ex(0, &thread_id);
if (!tsrm_ls) {
/* shouldn't normally happen */
break;
@@ -1267,7 +1271,7 @@ static LRESULT CALLBACK zend_timeout_WndProc(HWND hWnd, UINT message, WPARAM wPa
#ifdef ZTS
void ***tsrm_ls;
tsrm_ls = ts_resource_ex(0, &wParam);
tsrm_ls = ts_resource_ex(0, &thread_id);
if (!tsrm_ls) {
/* Thread died before receiving its timeout? */
break;
@@ -1656,13 +1660,6 @@ ZEND_API void zend_rebuild_symbol_table(TSRMLS_D) /* {{{ */
/*printf("Cache miss! Initialized %x\n", EG(active_symbol_table));*/
}
ex->symbol_table = EG(active_symbol_table);
if (ex->op_array->this_var != -1 &&
!*EX_CV_NUM(ex, ex->op_array->this_var) &&
EG(This)) {
*EX_CV_NUM(ex, ex->op_array->this_var) = (zval**)EX_CV_NUM(ex, ex->op_array->last_var + ex->op_array->this_var);
**EX_CV_NUM(ex, ex->op_array->this_var) = EG(This);
}
for (i = 0; i < ex->op_array->last_var; i++) {
if (*EX_CV_NUM(ex, i)) {
zend_hash_quick_update(EG(active_symbol_table),
+1 -1
View File
@@ -111,7 +111,7 @@ END_EXTERN_C()
ZEND_API extern zend_llist zend_extensions;
void zend_extension_dtor(zend_extension *extension);
void zend_append_version_info(const zend_extension *extension);
ZEND_API void zend_append_version_info(const zend_extension *extension);
int zend_startup_extensions_mechanism(void);
int zend_startup_extensions(void);
void zend_shutdown_extensions(TSRMLS_D);
+4
View File
@@ -21,6 +21,8 @@
#ifndef ZEND_FLOAT_H
#define ZEND_FLOAT_H
BEGIN_EXTERN_C()
/*
Define functions for FP initialization and de-initialization.
*/
@@ -28,6 +30,8 @@ extern ZEND_API void zend_init_fpu(TSRMLS_D);
extern ZEND_API void zend_shutdown_fpu(TSRMLS_D);
extern ZEND_API void zend_ensure_fpu_mode(TSRMLS_D);
END_EXTERN_C()
/* Copy of the contents of xpfpa.h (which is under public domain)
See http://wiki.php.net/rfc/rounding for details.
+1 -1
View File
@@ -283,7 +283,7 @@ struct _zend_ini_scanner_globals {
char *filename;
int lineno;
/* Modes are: ZEND_INI_SCANNER_NORMAL, ZEND_INI_SCANNER_RAW */
/* Modes are: ZEND_INI_SCANNER_NORMAL, ZEND_INI_SCANNER_RAW, ZEND_INI_SCANNER_TYPED */
int scanner_mode;
};
+4 -2
View File
@@ -265,6 +265,7 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
%token TC_QUOTED_STRING
%token BOOL_TRUE
%token BOOL_FALSE
%token NULL_NULL
%token END_OF_LINE
%token '=' ':' ',' '.' '"' '\'' '^' '+' '-' '/' '*' '%' '$' '~' '<' '>' '?' '@' '{' '}'
%left '|' '&' '^'
@@ -291,7 +292,7 @@ statement:
#endif
ZEND_INI_PARSER_CB(&$1, &$3, NULL, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG TSRMLS_CC);
free(Z_STRVAL($1));
free(Z_STRVAL($3));
zval_internal_dtor(&$3);
}
| TC_OFFSET option_offset ']' '=' string_or_value {
#if DEBUG_CFG_PARSER
@@ -300,7 +301,7 @@ statement:
ZEND_INI_PARSER_CB(&$1, &$5, &$2, ZEND_INI_PARSER_POP_ENTRY, ZEND_INI_PARSER_ARG TSRMLS_CC);
free(Z_STRVAL($1));
free(Z_STRVAL($2));
free(Z_STRVAL($5));
zval_internal_dtor(&$5);
}
| TC_LABEL { ZEND_INI_PARSER_CB(&$1, NULL, NULL, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG TSRMLS_CC); free(Z_STRVAL($1)); }
| END_OF_LINE
@@ -315,6 +316,7 @@ string_or_value:
expr { $$ = $1; }
| BOOL_TRUE { $$ = $1; }
| BOOL_FALSE { $$ = $1; }
| NULL_NULL { $$ = $1; }
| END_OF_LINE { zend_ini_init_string(&$$); }
;
+4827 -4663
View File
File diff suppressed because it is too large. Load diff
+1
View File
@@ -25,6 +25,7 @@
/* Scanner modes */
#define ZEND_INI_SCANNER_NORMAL 0 /* Normal mode. [DEFAULT] */
#define ZEND_INI_SCANNER_RAW 1 /* Raw mode. Option values are not parsed */
#define ZEND_INI_SCANNER_TYPED 2 /* Typed mode. */
BEGIN_EXTERN_C()
int zend_ini_scanner_get_lineno(TSRMLS_D);
+56 -5
View File
@@ -24,6 +24,7 @@
#include <errno.h>
#include "zend.h"
#include "zend_API.h"
#include "zend_globals.h"
#include <zend_ini_parser.h>
#include "zend_ini_scanner.h"
@@ -137,9 +138,55 @@ ZEND_API zend_ini_scanner_globals ini_scanner_globals;
Z_TYPE_P(retval) = IS_STRING; \
}
#define RETURN_TOKEN(type, str, len) { \
zend_ini_copy_value(ini_lval, str, len); \
return type; \
#define RETURN_TOKEN(type, str, len) { \
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_TYPED) { \
zend_ini_copy_typed_value(ini_lval, type, str, len); \
} else { \
zend_ini_copy_value(ini_lval, str, len); \
} \
return type; \
}
static inline int convert_to_number(zval *retval, const char *str, const int str_len)
{
zend_uchar type;
int overflow;
long lval;
double dval;
if ((type = is_numeric_string_ex(str, str_len, &lval, &dval, 0, &overflow)) != 0) {
if (type == IS_LONG) {
ZVAL_LONG(retval, lval);
return SUCCESS;
} else if (type == IS_DOUBLE && !overflow) {
ZVAL_DOUBLE(retval, dval);
return SUCCESS;
}
}
return FAILURE;
}
static void zend_ini_copy_typed_value(zval *retval, const int type, const char *str, int len)
{
switch (type) {
case BOOL_FALSE:
case BOOL_TRUE:
ZVAL_BOOL(retval, type == BOOL_TRUE);
break;
case NULL_NULL:
ZVAL_NULL(retval);
break;
case TC_NUMBER:
if (convert_to_number(retval, str, len) == SUCCESS) {
break;
}
/* intentional fall-through */
default:
zend_ini_copy_value(retval, str, len);
}
}
static void _yy_push_state(int new_state TSRMLS_DC)
@@ -172,7 +219,7 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC)
{
/* Sanity check */
if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) {
if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW && scanner_mode != ZEND_INI_SCANNER_TYPED) {
zend_error(E_WARNING, "Invalid scanner mode");
return FAILURE;
}
@@ -422,10 +469,14 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
<INITIAL,ST_VALUE>("false"|"off"|"no"|"none"|"null"){TABS_AND_SPACES}* { /* FALSE value (when used outside option value/offset this causes parse error!)*/
<INITIAL,ST_VALUE>("false"|"off"|"no"|"none"){TABS_AND_SPACES}* { /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0);
}
<INITIAL,ST_VALUE>("null"){TABS_AND_SPACES}* {
RETURN_TOKEN(NULL_NULL, "", 0);
}
<INITIAL>{LABEL} { /* Get option name */
/* Eat leading whitespace */
EAT_LEADING_WHITESPACE();
+19 -14
View File
@@ -865,13 +865,16 @@ yield_expr:
;
combined_scalar_offset:
combined_scalar '[' dim_offset ']' { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
| combined_scalar_offset '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
| T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $1.EA = 0; zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
combined_scalar '[' dim_offset ']' { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
| combined_scalar_offset '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
| T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $1.EA = 0; zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
| general_constant '[' dim_offset ']' { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
;
combined_scalar:
T_ARRAY '(' array_pair_list ')' { $$ = $3; }
| '[' array_pair_list ']' { $$ = $2; }
T_ARRAY '(' array_pair_list ')' { $$ = $3; }
| '[' array_pair_list ']' { $$ = $2; }
;
function:
T_FUNCTION { $$.u.op.opline_num = CG(zend_lineno); }
@@ -1038,20 +1041,22 @@ static_operation:
| '(' static_scalar_value ')' { $$ = $2; }
;
scalar:
T_STRING_VARNAME { $$ = $1; }
| class_name_scalar { $$ = $1; }
| class_constant { $$ = $1; }
general_constant:
class_constant { $$ = $1; }
| namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT, 1 TSRMLS_CC); }
| T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_RT, 0 TSRMLS_CC); }
| T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_RT, 0 TSRMLS_CC); }
| common_scalar { $$ = $1; }
| '"' encaps_list '"' { $$ = $2; }
| T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2; }
| T_CLASS_C { if (Z_TYPE($1.u.constant) == IS_CONSTANT) {zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT, 1 TSRMLS_CC);} else {$$ = $1;} }
;
scalar:
T_STRING_VARNAME { $$ = $1; }
| general_constant { $$ = $1; }
| class_name_scalar { $$ = $1; }
| common_scalar { $$ = $1; }
| '"' encaps_list '"' { $$ = $2; }
| T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2; }
| T_CLASS_C { if (Z_TYPE($1.u.constant) == IS_CONSTANT) {zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT, 1 TSRMLS_CC);} else {$$ = $1;} }
;
static_array_pair_list:
/* empty */ { $$.op_type = IS_CONST; INIT_PZVAL(&$$.u.constant); array_init(&$$.u.constant); $$.u.ast = zend_ast_create_constant(&$$.u.constant); }
+6 -3
View File
@@ -786,9 +786,6 @@ static zval **zend_std_get_property_ptr_ptr(zval *object, zval *member, int type
/* we don't have access controls - will just add it */
new_zval = &EG(uninitialized_zval);
if(UNEXPECTED(type == BP_VAR_RW || type == BP_VAR_R)) {
zend_error(E_NOTICE, "Undefined property: %s::$%s", zobj->ce->name, Z_STRVAL_P(member));
}
Z_ADDREF_P(new_zval);
if (EXPECTED((property_info->flags & ZEND_ACC_STATIC) == 0) &&
property_info->offset >= 0) {
@@ -808,6 +805,12 @@ static zval **zend_std_get_property_ptr_ptr(zval *object, zval *member, int type
}
zend_hash_quick_update(zobj->properties, property_info->name, property_info->name_length+1, property_info->h, &new_zval, sizeof(zval *), (void **) &retval);
}
/* Notice is thrown after creation of the property, to avoid EG(std_property_info)
* being overwritten in an error handler. */
if (UNEXPECTED(type == BP_VAR_RW || type == BP_VAR_R)) {
zend_error(E_NOTICE, "Undefined property: %s::$%s", zobj->ce->name, Z_STRVAL_P(member));
}
} else {
/* we do have getter - fail and let it try again with usual get/set */
retval = NULL;
+2 -1
View File
@@ -137,8 +137,9 @@ ZEND_API void _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC)
}
ALLOC_HASHTABLE_REL(tmp_ht);
zend_hash_init(tmp_ht, zend_hash_num_elements(original_ht), NULL, ZVAL_PTR_DTOR, 0);
zend_hash_copy(tmp_ht, original_ht, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
zvalue->value.ht = tmp_ht;
zend_hash_copy(tmp_ht, original_ht, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
tmp_ht->nNextFreeElement = original_ht->nNextFreeElement;
}
break;
case IS_CONSTANT_AST:
+4
View File
@@ -21,9 +21,13 @@
#ifndef ZEND_VM_H
#define ZEND_VM_H
BEGIN_EXTERN_C()
ZEND_API void zend_vm_use_old_executor(void);
ZEND_API void zend_vm_set_opcode_handler(zend_op* opcode);
END_EXTERN_C()
#define ZEND_VM_SET_OPCODE_HANDLER(opline) zend_vm_set_opcode_handler(opline)
#endif
+5 -8
View File
@@ -1961,7 +1961,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
void **p = EX(function_state).arguments - num_args;
for (i = 0; i < num_args; ++i, ++p) {
zend_verify_arg_type(fbc, i + 1, (zval *) *p, 0 TSRMLS_CC);
zend_verify_arg_type(fbc, i + 1, (zval *) *p, 0, NULL TSRMLS_CC);
}
}
@@ -3374,7 +3374,7 @@ ZEND_VM_HANDLER(63, ZEND_RECV, ANY, ANY)
SAVE_OPLINE();
if (UNEXPECTED(param == NULL)) {
if (zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, NULL, opline->extended_value TSRMLS_CC)) {
if (zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, NULL, opline->extended_value, NULL TSRMLS_CC)) {
const char *space;
const char *class_name;
zend_execute_data *ptr;
@@ -3396,7 +3396,7 @@ ZEND_VM_HANDLER(63, ZEND_RECV, ANY, ANY)
} else {
zval **var_ptr;
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value, NULL TSRMLS_CC);
var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->result.var TSRMLS_CC);
Z_DELREF_PP(var_ptr);
*var_ptr = *param;
@@ -3438,7 +3438,7 @@ ZEND_VM_HANDLER(64, ZEND_RECV_INIT, ANY, CONST)
Z_ADDREF_P(assignment_value);
}
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, assignment_value, opline->extended_value TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, assignment_value, opline->extended_value, opline->op2.zv TSRMLS_CC);
var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->result.var TSRMLS_CC);
zval_ptr_dtor(var_ptr);
*var_ptr = assignment_value;
@@ -3469,7 +3469,7 @@ ZEND_VM_HANDLER(164, ZEND_RECV_VARIADIC, ANY, ANY)
for (; arg_num <= arg_count; ++arg_num) {
zval **param = zend_vm_stack_get_arg(arg_num TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value, NULL TSRMLS_CC);
zend_hash_next_index_insert(Z_ARRVAL_P(params), param, sizeof(zval *), NULL);
Z_ADDREF_PP(param);
}
@@ -3772,9 +3772,6 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
}
}
constant_fetch_end:
if (Z_TYPE(EX_T(opline->result.var).tmp_var) == IS_ARRAY) {
zend_error_noreturn(E_ERROR, "Arrays are not allowed in constants at run-time");
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
+5 -14
View File
@@ -541,7 +541,7 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
void **p = EX(function_state).arguments - num_args;
for (i = 0; i < num_args; ++i, ++p) {
zend_verify_arg_type(fbc, i + 1, (zval *) *p, 0 TSRMLS_CC);
zend_verify_arg_type(fbc, i + 1, (zval *) *p, 0, NULL TSRMLS_CC);
}
}
@@ -861,7 +861,7 @@ static int ZEND_FASTCALL ZEND_RECV_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
if (UNEXPECTED(param == NULL)) {
if (zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, NULL, opline->extended_value TSRMLS_CC)) {
if (zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, NULL, opline->extended_value, NULL TSRMLS_CC)) {
const char *space;
const char *class_name;
zend_execute_data *ptr;
@@ -883,7 +883,7 @@ static int ZEND_FASTCALL ZEND_RECV_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
zval **var_ptr;
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value, NULL TSRMLS_CC);
var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->result.var TSRMLS_CC);
Z_DELREF_PP(var_ptr);
*var_ptr = *param;
@@ -916,7 +916,7 @@ static int ZEND_FASTCALL ZEND_RECV_VARIADIC_SPEC_HANDLER(ZEND_OPCODE_HANDLER_AR
for (; arg_num <= arg_count; ++arg_num) {
zval **param = zend_vm_stack_get_arg(arg_num TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value, NULL TSRMLS_CC);
zend_hash_next_index_insert(Z_ARRVAL_P(params), param, sizeof(zval *), NULL);
Z_ADDREF_PP(param);
}
@@ -1643,7 +1643,7 @@ static int ZEND_FASTCALL ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_
Z_ADDREF_P(assignment_value);
}
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, assignment_value, opline->extended_value TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, assignment_value, opline->extended_value, opline->op2.zv TSRMLS_CC);
var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->result.var TSRMLS_CC);
zval_ptr_dtor(var_ptr);
*var_ptr = assignment_value;
@@ -4036,9 +4036,6 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
}
}
constant_fetch_end:
if (Z_TYPE(EX_T(opline->result.var).tmp_var) == IS_ARRAY) {
zend_error_noreturn(E_ERROR, "Arrays are not allowed in constants at run-time");
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -16001,9 +15998,6 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
}
}
constant_fetch_end:
if (Z_TYPE(EX_T(opline->result.var).tmp_var) == IS_ARRAY) {
zend_error_noreturn(E_ERROR, "Arrays are not allowed in constants at run-time");
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -25613,9 +25607,6 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
}
}
constant_fetch_end:
if (Z_TYPE(EX_T(opline->result.var).tmp_var) == IS_ARRAY) {
zend_error_noreturn(E_ERROR, "Arrays are not allowed in constants at run-time");
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
+2
View File
@@ -1208,7 +1208,9 @@ function gen_vm($def, $skel) {
out($f, $GLOBALS['header_text']);
fputs($f, "#ifndef ZEND_VM_OPCODES_H\n#define ZEND_VM_OPCODES_H\n\n");
fputs($f, "BEGIN_EXTERN_C()\n\n");
fputs($f, "ZEND_API const char *zend_get_opcode_name(zend_uchar opcode);\n\n");
fputs($f, "END_EXTERN_C()\n\n");
foreach ($opcodes as $code => $dsc) {
$code = str_pad((string)$code,$code_len," ",STR_PAD_LEFT);
+4
View File
@@ -21,8 +21,12 @@
#ifndef ZEND_VM_OPCODES_H
#define ZEND_VM_OPCODES_H
BEGIN_EXTERN_C()
ZEND_API const char *zend_get_opcode_name(zend_uchar opcode);
END_EXTERN_C()
#define ZEND_NOP 0
#define ZEND_ADD 1
#define ZEND_SUB 2
+1 -1
View File
@@ -2800,7 +2800,7 @@ AC_DEFUN([PHP_DETECT_ICC],
dnl PHP_DETECT_SUNCC
dnl Detect if the systems default compiler is suncc.
dnl We also set some usefull CFLAGS if the user didn't set any
dnl We also set some useful CFLAGS if the user didn't set any
AC_DEFUN([PHP_DETECT_SUNCC],[
SUNCC="no"
AC_MSG_CHECKING([for suncc])
+9 -3
View File
@@ -615,7 +615,7 @@ ia64-*-hpux*)
rm -rf conftest*
;;
x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
@@ -629,7 +629,10 @@ s390*-*linux*|sparc*-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
ppc64-*linux*|powerpc64-*linux*)
powerpc64le-*linux*)
LD="${LD-ld} -m elf32lppclinux"
;;
powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -648,7 +651,10 @@ s390*-*linux*|sparc*-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
ppc*-*linux*|powerpc*-*linux*)
powerpcle-*linux*)
LD="${LD-ld} -m elf64lppc"
;;
powerpc-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*)
+6
View File
@@ -982,6 +982,12 @@ EOF
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
exit ;;
ppc64le:Linux:*:*)
echo powerpc64le-unknown-linux-gnu
exit ;;
ppcle:Linux:*:*)
echo powerpcle-unknown-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
+24 -10
View File
@@ -119,8 +119,8 @@ int zend_sprintf(char *buffer, const char *format, ...);
PHP_MAJOR_VERSION=5
PHP_MINOR_VERSION=6
PHP_RELEASE_VERSION=0
PHP_EXTRA_VERSION="-dev"
PHP_RELEASE_VERSION=4
PHP_EXTRA_VERSION=""
PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION`
@@ -787,7 +787,12 @@ if test "$PHP_GCOV" = "yes"; then
AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
fi
ltp_version_list="1.5 1.6 1.7 1.9 1.10"
dnl min: 1.5 (i.e. 105, major * 100 + minor for easier comparison)
ltp_version_min="105"
dnl non-working versions, e.g. "1.8 1.18";
dnl remove "none" when introducing the first incompatible LTP version an
dnl separate any following additions by spaces
ltp_version_exclude="1.8"
AC_CHECK_PROG(LTP, lcov, lcov)
AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
@@ -797,21 +802,30 @@ if test "$PHP_GCOV" = "yes"; then
if test "$LTP"; then
AC_CACHE_CHECK([for ltp version], php_cv_ltp_version, [
php_cv_ltp_version=invalid
ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'`
for ltp_check_version in $ltp_version_list; do
if test "$ltp_version" = "$ltp_check_version"; then
php_cv_ltp_version="$ltp_check_version (ok)"
ltp_version_vars=`$LTP -v 2>/dev/null | $SED -e 's/^.* //' -e 's/\./ /g' | tr -d a-z`
if test -n "$ltp_version_vars"; then
set $ltp_version_vars
ltp_version="${1}.${2}"
ltp_version_num="`expr ${1} \* 100 + ${2}`"
if test $ltp_version_num -ge $ltp_version_min; then
php_cv_ltp_version="$ltp_version (ok)"
for ltp_check_version in $ltp_version_exclude; do
if test "$ltp_version" = "$ltp_check_version"; then
php_cv_ltp_version=invalid
break
fi
done
fi
done
fi
])
else
ltp_msg="To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list"
ltp_msg="To enable code coverage reporting you must have LTP installed"
AC_MSG_ERROR([$ltp_msg])
fi
case $php_cv_ltp_version in
""|invalid[)]
ltp_msg="You must have one of the following versions of LTP: $ltp_version_list (found: $ltp_version)."
ltp_msg="This LTP version is not supported (found: $ltp_version, min: $ltp_version_min, excluded: $ltp_version_exclude)."
AC_MSG_ERROR([$ltp_msg])
LTP="exit 0;"
;;
+1 -1
View File
@@ -47,7 +47,7 @@
*
* CALENDAR OVERVIEW
*
* Julias Ceasar created the calendar in 46 B.C. as a modified form of
* Julius Caesar created the calendar in 46 B.C. as a modified form of
* the old Roman republican calendar which was based on lunar cycles.
* The new Julian calendar set fixed lengths for the months, abandoning
* the lunar cycle. It also specified that there would be exactly 12
+2 -2
View File
@@ -21,10 +21,10 @@ putenv('TZ=UTC');
// -uses --INI-- section with date.timezone=UTC
// -uses putenv('TZ=UTC')
// date.timezone=UTC
// -if ommitted from easter_date.phpt, outputs DATE_TZ_ERRMSG warning
// -if omitted from easter_date.phpt, outputs DATE_TZ_ERRMSG warning
// -easter_date() calls mktime() and localtime()
// -whereas unixtojd(1000000000) calls localtime(1000000000)
// -if ommitted from unixtojd.phpt, does NOT output DATE_TZ_ERRMSG
// -if omitted from unixtojd.phpt, does NOT output DATE_TZ_ERRMSG
//
// unixtojd() calls php_localtime_r() which for Pacific timezone systems, returns a time -8 hours
// -this incorrect localtime is passed to the julian date conversion (GregorianToSDN) function which works (probably correctly)
+30 -3
View File
@@ -198,7 +198,8 @@ PHP_FUNCTION(com_dotnet_create_instance)
IUnknown *unk = NULL;
php_com_initialize(TSRMLS_C);
if (COMG(dotnet_runtime_stuff) == NULL) {
stuff = (struct dotnet_runtime_stuff*)COMG(dotnet_runtime_stuff);
if (stuff == NULL) {
hr = dotnet_init(&where TSRMLS_CC);
if (FAILED(hr)) {
char buf[1024];
@@ -210,9 +211,35 @@ PHP_FUNCTION(com_dotnet_create_instance)
ZVAL_NULL(object);
return;
}
}
stuff = (struct dotnet_runtime_stuff*)COMG(dotnet_runtime_stuff);
stuff = (struct dotnet_runtime_stuff*)COMG(dotnet_runtime_stuff);
} else if (stuff->dotnet_domain == NULL) {
where = "ICorRuntimeHost_GetDefaultDomain";
hr = ICorRuntimeHost_GetDefaultDomain(stuff->dotnet_host, &unk);
if (FAILED(hr)) {
char buf[1024];
char *err = php_win32_error_to_msg(hr);
snprintf(buf, sizeof(buf), "Failed to re-init .Net domain [%s] %s", where, err);
if (err)
LocalFree(err);
php_com_throw_exception(hr, buf TSRMLS_CC);
ZVAL_NULL(object);
return;
}
where = "QI: System._AppDomain";
hr = IUnknown_QueryInterface(unk, &IID_mscorlib_System_AppDomain, (LPVOID*)&stuff->dotnet_domain);
if (FAILED(hr)) {
char buf[1024];
char *err = php_win32_error_to_msg(hr);
snprintf(buf, sizeof(buf), "Failed to re-init .Net domain [%s] %s", where, err);
if (err)
LocalFree(err);
php_com_throw_exception(hr, buf TSRMLS_CC);
ZVAL_NULL(object);
return;
}
}
obj = CDNO_FETCH(object);
+11
View File
@@ -169,6 +169,11 @@ static int php_curl_option_str(php_curl *ch, long option, const char *str, const
{
CURLcode error = CURLE_OK;
if (strlen(str) != len) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Curl option contains invalid characters (\\0)");
return FAILURE;
}
#if LIBCURL_VERSION_NUM >= 0x071100
if (make_copy) {
#endif
@@ -1189,6 +1194,12 @@ PHP_MINIT_FUNCTION(curl)
REGISTER_CURL_CONSTANT(CURLSSLOPT_ALLOW_BEAST);
#endif
#if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_TLSv1_0);
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_TLSv1_1);
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_TLSv1_2);
#endif
#if CURLOPT_FTPASCII != 0
REGISTER_CURL_CONSTANT(CURLOPT_FTPASCII);
#endif
+18
View File
@@ -0,0 +1,18 @@
--TEST--
Bug #68089 (NULL byte injection - cURL lib)
--SKIPIF--
<?php
include 'skipif.inc';
?>
--FILE--
<?php
$url = "file:///etc/passwd\0http://google.com";
$ch = curl_init();
var_dump(curl_setopt($ch, CURLOPT_URL, $url));
?>
Done
--EXPECTF--
Warning: curl_setopt(): Curl option contains invalid characters (\0) in %s%ebug68089.php on line 4
bool(false)
Done
+1 -1
View File
@@ -28,7 +28,7 @@ Features
AsynchDNS => Yes
CharConv => No
Debug => No
GSS-Negotiate => Yes
GSS-Negotiate => No
IDN => Yes
IPv6 => Yes
krb4 => No
+27
View File
@@ -0,0 +1,27 @@
--TEST--
Test curl_multi_init() fail if any parameter is passed
--CREDITS--
Paulo Eduardo <pauloelr [at] gmail [dot] com>
#testfest SP 2014
--SKIPIF--
<?php if (!extension_loaded("curl")) print "skip"; ?>
--FILE--
<?php
/* Prototype : resource curl_multi_init(void)
* Description : Returns a new cURL multi handle
* Source code : ext/curl/multi.c
* Test documentation: http://wiki.php.net/qa/temp/ext/curl
*/
// start testing
//create the multiple cURL handle
$mh = curl_multi_init('test');
var_dump($mh);
?>
===DONE===
--EXPECTF--
Warning: curl_multi_init() expects exactly 0 parameters, %d given in %s on line %d
NULL
===DONE===
+15 -3
View File
@@ -23,9 +23,21 @@
static int m_table_common[13] = { -1, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }; /* 1 = jan */
static int m_table_leap[13] = { -1, 6, 2, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }; /* 1 = jan */
static timelib_sll positive_mod(timelib_sll x, timelib_sll y)
{
timelib_sll tmp;
tmp = x % y;
if (tmp < 0) {
tmp += y;
}
return tmp;
}
static timelib_sll century_value(timelib_sll j)
{
return 6 - (j % 4) * 2;
return 6 - positive_mod(j, 4) * 2;
}
static timelib_sll timelib_day_of_week_ex(timelib_sll y, timelib_sll m, timelib_sll d, int iso)
@@ -36,9 +48,9 @@ static timelib_sll timelib_day_of_week_ex(timelib_sll y, timelib_sll m, timelib_
* Julian calendar. We just return the 'wrong' day of week to be
* consistent. */
c1 = century_value(y / 100);
y1 = (y % 100);
y1 = positive_mod(y, 100);
m1 = timelib_is_leap(y) ? m_table_leap[m] : m_table_common[m];
dow = (c1 + y1 + m1 + (y1 / 4) + d) % 7;
dow = positive_mod((c1 + y1 + m1 + (y1 / 4) + d), 7);
if (iso) {
if (dow == 0) {
dow = 7;
+12566 -12594
View File
File diff suppressed because it is too large. Load diff
+14 -40
View File
@@ -668,7 +668,7 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
}
}
const static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffset, int isdst)
const static timelib_tz_lookup_table* abbr_search(const char *word, long gmtoffset, int isdst)
{
int first_found = 0;
const timelib_tz_lookup_table *tp, *first_found_elem = NULL;
@@ -696,25 +696,6 @@ const static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffs
return first_found_elem;
}
for (tp = timelib_timezone_lookup; tp->name; tp++) {
if (tp->full_tz_name && strcasecmp(word, tp->full_tz_name) == 0) {
if (!first_found) {
first_found = 1;
first_found_elem = tp;
if (gmtoffset == -1) {
return tp;
}
}
if (tp->gmtoffset == gmtoffset) {
return tp;
}
}
}
if (first_found) {
return first_found_elem;
}
/* Still didn't find anything, let's find the zone solely based on
* offset/isdst then */
for (fmp = timelib_timezone_fallbackmap; fmp->name; fmp++) {
@@ -725,7 +706,7 @@ const static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffs
return NULL;
}
static long timelib_lookup_zone(char **ptr, int *dst, char **tz_abbr, int *found)
static long timelib_lookup_abbr(char **ptr, int *dst, char **tz_abbr, int *found)
{
char *word;
char *begin = *ptr, *end;
@@ -739,7 +720,7 @@ static long timelib_lookup_zone(char **ptr, int *dst, char **tz_abbr, int *found
word = calloc(1, end - begin + 1);
memcpy(word, begin, end - begin);
if ((tp = zone_search(word, -1, 0))) {
if ((tp = abbr_search(word, -1, 0))) {
value = -tp->gmtoffset / 60;
*dst = tp->type;
value += tp->type * 60;
@@ -783,33 +764,26 @@ long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found
retval = timelib_parse_tz_cor(ptr);
} else {
int found = 0;
long offset;
long offset = 0;
char *tz_abbr;
t->is_localtime = 1;
offset = timelib_lookup_zone(ptr, dst, &tz_abbr, &found);
/* First, we lookup by abbreviation only */
offset = timelib_lookup_abbr(ptr, dst, &tz_abbr, &found);
if (found) {
t->zone_type = TIMELIB_ZONETYPE_ABBR;
timelib_time_tz_abbr_update(t, tz_abbr);
}
#if 0
/* If we found a TimeZone identifier, use it */
if (tz_name) {
t->tz_info = timelib_parse_tzfile(tz_name);
t->zone_type = TIMELIB_ZONETYPE_ID;
}
#endif
/* If we have a TimeZone identifier to start with, use it */
if (strstr(tz_abbr, "/") || strcmp(tz_abbr, "UTC") == 0) {
/* Otherwise, we look if we have a TimeZone identifier */
if (!found || strcmp("UTC", tz_abbr) == 0) {
if ((res = tz_wrapper(tz_abbr, tzdb)) != NULL) {
t->tz_info = res;
t->zone_type = TIMELIB_ZONETYPE_ID;
found++;
}
}
if (found && t->zone_type != TIMELIB_ZONETYPE_ID) {
timelib_time_tz_abbr_update(t, tz_abbr);
}
free(tz_abbr);
*tz_not_found = (found == 0);
retval = offset;
@@ -931,8 +905,8 @@ mssqltime = hour12 ":" minutelz ":" secondlz [:.] [0-9]+ meridian;
isoweekday = year4 "-"? "W" weekofyear "-"? [0-7];
isoweek = year4 "-"? "W" weekofyear;
exif = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
firstdayof = 'first day of'?;
lastdayof = 'last day of'?;
firstdayof = 'first day of';
lastdayof = 'last day of';
backof = 'back of ' hour24 space? meridian?;
frontof = 'front of ' hour24 space? meridian?;
@@ -1055,7 +1029,7 @@ weekdayof = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
TIMELIB_HAVE_RELATIVE();
/* skip "last day of" or "first day of" */
if (*ptr == 'l') {
if (*ptr == 'l' || *ptr == 'L') {
s->time->relative.first_last_day_of = 2;
} else {
s->time->relative.first_last_day_of = 1;
@@ -2232,7 +2206,7 @@ char *timelib_timezone_id_from_abbr(const char *abbr, long gmtoffset, int isdst)
{
const timelib_tz_lookup_table *tp;
tp = zone_search(abbr, gmtoffset, isdst);
tp = abbr_search(abbr, gmtoffset, isdst);
if (tp) {
return (tp->full_tz_name);
} else {
+3 -3
View File
@@ -336,7 +336,7 @@ static ttinfo* fetch_timezone_offset(timelib_tzinfo *tz, timelib_sll ts, timelib
{
uint32_t i;
/* If there is no transistion time, we pick the first one, if that doesn't
/* If there is no transition time, we pick the first one, if that doesn't
* exist we return NULL */
if (!tz->timecnt || !tz->trans) {
*transition_time = 0;
@@ -346,8 +346,8 @@ static ttinfo* fetch_timezone_offset(timelib_tzinfo *tz, timelib_sll ts, timelib
return NULL;
}
/* If the TS is lower than the first transistion time, then we scan over
* all the transistion times to find the first non-DST one, or the first
/* If the TS is lower than the first transition time, then we scan over
* all the transition times to find the first non-DST one, or the first
* one in case there are only DST entries. Not sure which smartass came up
* with this idea in the first though :) */
if (ts < tz->trans[0]) {
+1640 -1544
View File
File diff suppressed because it is too large. Load diff
+28 -20
View File
@@ -330,7 +330,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_offset_get, 0, 0, 2)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_method_offset_get, 0, 0, 1)
ZEND_ARG_INFO(0, datetime)
ZEND_ARG_INFO(0, object)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_transitions_get, 0, 0, 1)
@@ -2539,11 +2539,7 @@ static void date_object_free_storage_period(void *object TSRMLS_DC)
/* Advanced Interface */
PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC)
{
Z_TYPE_P(object) = IS_OBJECT;
object_init_ex(object, pce);
Z_SET_REFCOUNT_P(object, 1);
Z_UNSET_ISREF_P(object);
return object;
}
@@ -2651,15 +2647,18 @@ PHP_FUNCTION(date_create)
zval *timezone_object = NULL;
char *time_str = NULL;
int time_str_len = 0;
zval datetime_object;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
RETURN_FALSE;
}
php_date_instantiate(date_ce_date, return_value TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
php_date_instantiate(date_ce_date, &datetime_object TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(&datetime_object TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
zval_dtor(&datetime_object);
RETURN_FALSE;
}
RETVAL_ZVAL(&datetime_object, 0, 0);
}
/* }}} */
@@ -2671,15 +2670,18 @@ PHP_FUNCTION(date_create_immutable)
zval *timezone_object = NULL;
char *time_str = NULL;
int time_str_len = 0;
zval datetime_object;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
RETURN_FALSE;
}
php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
php_date_instantiate(date_ce_immutable, &datetime_object TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(&datetime_object TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
zval_dtor(&datetime_object);
RETURN_FALSE;
}
RETVAL_ZVAL(&datetime_object, 0, 0);
}
/* }}} */
@@ -2691,15 +2693,18 @@ PHP_FUNCTION(date_create_from_format)
zval *timezone_object = NULL;
char *time_str = NULL, *format_str = NULL;
int time_str_len = 0, format_str_len = 0;
zval datetime_object;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|O", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
RETURN_FALSE;
}
php_date_instantiate(date_ce_date, return_value TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
php_date_instantiate(date_ce_date, &datetime_object TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(&datetime_object TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
zval_dtor(&datetime_object);
RETURN_FALSE;
}
RETVAL_ZVAL(&datetime_object, 0, 0);
}
/* }}} */
@@ -2711,15 +2716,18 @@ PHP_FUNCTION(date_create_immutable_from_format)
zval *timezone_object = NULL;
char *time_str = NULL, *format_str = NULL;
int time_str_len = 0, format_str_len = 0;
zval datetime_object;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|O", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
RETURN_FALSE;
}
php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
php_date_instantiate(date_ce_immutable, &datetime_object TSRMLS_CC);
if (!php_date_initialize(zend_object_store_get_object(&datetime_object TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
zval_dtor(&datetime_object);
RETURN_FALSE;
}
RETVAL_ZVAL(&datetime_object, 0, 0);
}
/* }}} */
@@ -2787,7 +2795,7 @@ PHP_METHOD(DateTimeImmutable, createFromMutable)
}
/* }}} */
static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dateobj, HashTable *myht TSRMLS_DC)
static int php_date_initialize_from_hash(php_date_obj **dateobj, HashTable *myht TSRMLS_DC)
{
zval **z_date = NULL;
zval **z_timezone = NULL;
@@ -2857,7 +2865,7 @@ PHP_METHOD(DateTime, __set_state)
php_date_instantiate(date_ce_date, return_value TSRMLS_CC);
dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC);
if (!php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC)) {
if (!php_date_initialize_from_hash(&dateobj, myht TSRMLS_CC)) {
php_error(E_ERROR, "Invalid serialization data for DateTime object");
}
}
@@ -2879,7 +2887,7 @@ PHP_METHOD(DateTimeImmutable, __set_state)
php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC);
dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC);
if (!php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC)) {
if (!php_date_initialize_from_hash(&dateobj, myht TSRMLS_CC)) {
php_error(E_ERROR, "Invalid serialization data for DateTimeImmutable object");
}
}
@@ -2897,7 +2905,7 @@ PHP_METHOD(DateTime, __wakeup)
myht = Z_OBJPROP_P(object);
if (!php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC)) {
if (!php_date_initialize_from_hash(&dateobj, myht TSRMLS_CC)) {
php_error(E_ERROR, "Invalid serialization data for DateTime object");
}
}
@@ -3840,7 +3848,7 @@ PHP_FUNCTION(timezone_name_from_abbr)
}
/* }}} */
/* {{{ proto long timezone_offset_get(DateTimeZone object, DateTime object)
/* {{{ proto long timezone_offset_get(DateTimeZone object, DateTimeInterface object)
Returns the timezone offset.
*/
PHP_FUNCTION(timezone_offset_get)
@@ -3850,13 +3858,13 @@ PHP_FUNCTION(timezone_offset_get)
php_date_obj *dateobj;
timelib_time_offset *offset;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO", &object, date_ce_timezone, &dateobject, date_ce_date) == FAILURE) {
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO", &object, date_ce_timezone, &dateobject, date_ce_interface) == FAILURE) {
RETURN_FALSE;
}
tzobj = (php_timezone_obj *) zend_object_store_get_object(object TSRMLS_CC);
DATE_CHECK_INITIALIZED(tzobj->initialized, DateTimeZone);
dateobj = (php_date_obj *) zend_object_store_get_object(dateobject TSRMLS_CC);
DATE_CHECK_INITIALIZED(dateobj->time, DateTime);
DATE_CHECK_INITIALIZED(dateobj->time, DateTimeInterface);
switch (tzobj->type) {
case TIMELIB_ZONETYPE_ID:
+1 -1
View File
@@ -3,7 +3,7 @@ strtotime() function
--SKIPIF--
<?php
if (!@putenv("TZ=EST5") || getenv("TZ") != 'EST5') {
die("skip unable to change TZ enviroment variable\n");
die("skip unable to change TZ environment variable\n");
}
?>
--FILE--
+13
View File
@@ -0,0 +1,13 @@
--TEST--
DateTimeZone::getOffset() accepts a DateTimeInterface object
--FILE--
<?php
$tz = new DateTimeZone('Europe/London');
$dt = new DateTimeImmutable('2014-09-20', $tz);
echo $tz->getOffset($dt);
echo $tz->getOffset(1);
--EXPECTF--
3600
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, integer given in %s
@@ -112,141 +112,141 @@ fclose( $file_handle );
-- int 0 --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- int 1 --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- int 12345 --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- int -12345 --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- float 10.5 --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, double given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, double given in %s on line %d
bool(false)
-- float -10.5 --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, double given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, double given in %s on line %d
bool(false)
-- float .5 --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, double given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, double given in %s on line %d
bool(false)
-- empty array --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- int indexed array --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- associative array --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- nested arrays --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- uppercase NULL --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- lowercase null --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- lowercase true --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- lowercase false --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- uppercase TRUE --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- uppercase FALSE --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- empty string DQ --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- empty string SQ --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- string DQ --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- string SQ --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- mixed case string --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- heredoc --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- instance of classWithToString --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, object given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, object given in %s on line %d
bool(false)
-- instance of classWithoutToString --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, object given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, object given in %s on line %d
bool(false)
-- undefined var --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- unset var --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- resource --
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, resource given in %s on line %d
Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTimeInterface, resource given in %s on line %d
bool(false)
===DONE===
@@ -145,7 +145,7 @@ object(DateTime)#%d (3) {
-- int -12345 --
object(DateTime)#%d (3) {
["date"]=>
string(28) "-12345-02-15 08:34:10.000000"
string(28) "-12345-02-11 08:34:10.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
@@ -165,7 +165,7 @@ object(DateTime)#%d (3) {
-- float -10.5 --
object(DateTime)#%d (3) {
["date"]=>
string(27) "-0010-02-19 08:34:10.000000"
string(27) "-0010-02-14 08:34:10.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
+1 -1
View File
@@ -8,7 +8,7 @@ if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
die("skip. set TZ env is not supported at runtime.");
}
if (!@putenv("TZ=US/Eastern") || getenv("TZ") != 'US/Eastern') {
die("skip unable to change TZ enviroment variable\n");
die("skip unable to change TZ environment variable\n");
}
?>
--FILE--
+6 -6
View File
@@ -95,18 +95,18 @@ result = Monday 2037-10-05 00:00:00 NZDT
wanted = Monday 00:00:00
Australia/Adelaide
ts = Friday 1971-01-01 17:17:17 CST
result = Monday 1971-01-04 00:00:00 CST
ts = Friday 1971-01-01 17:17:17 ACST
result = Monday 1971-01-04 00:00:00 ACST
wanted = Monday 00:00:00
Australia/Darwin
ts = Monday 1971-03-29 17:17:17 CST
result = Monday 1971-04-05 00:00:00 CST
ts = Monday 1971-03-29 17:17:17 ACST
result = Monday 1971-04-05 00:00:00 ACST
wanted = Monday 00:00:00
Australia/Perth
ts = Friday 1971-01-01 17:17:17 WST
result = Monday 1971-01-04 00:00:00 WST
ts = Friday 1971-01-01 17:17:17 AWST
result = Monday 1971-01-04 00:00:00 AWST
wanted = Monday 00:00:00
America/Aruba
+1 -1
View File
@@ -4,7 +4,7 @@ Bug #26317 (military timezone offset signedness)
date.timezone=GMT0
--SKIPIF--
if (!@putenv("TZ=GMT0") || getenv("TZ") != 'GMT0') {
die("skip unable to change TZ enviroment variable\n");
die("skip unable to change TZ environment variable\n");
}
--FILE--
<?php
+1 -1
View File
@@ -4,7 +4,7 @@ Bug #26320 (strtotime handling of XML Schema/ISO 8601 format)
date.timezone=GMT0
--SKIPIF--
if (!@putenv("TZ=GMT0") || getenv("TZ") != 'GMT0') {
die("skip unable to change TZ enviroment variable\n");
die("skip unable to change TZ environment variable\n");
}
--FILE--
<?php
+2 -2
View File
@@ -233,8 +233,8 @@ result=Saturday 1970-01-03 00:00:00 CAT 0
wanted=Saturday 00:00:00
TZ=Asia/Kashgar - Is it OK for this to be 3 AM? yes
tStamp=Thursday 1980-04-24 17:17:17 KAST 0
result=Thursday 1980-05-01 03:00:00 CST 0
tStamp=Thursday 1980-04-24 17:17:17 XJT 0
result=Thursday 1980-05-01 00:00:00 XJT 0
wanted=Thursday 03:00:00
TZ=Indian/Christmas - Is it OK for this to be 7 AM? Note: does
+2 -2
View File
@@ -39,5 +39,5 @@ datestr 10:00:00 AM July 1 2005 UTC
Setting TZ
input 10:00:00 AM July 1 2005
strftime 10:00:00 AM July 1 2005 EST +1000
datestr 10:00:00 AM July 1 2005 EST
strftime 10:00:00 AM July 1 2005 AEST +1000
datestr 10:00:00 AM July 1 2005 AEST
+3 -2
View File
@@ -10,7 +10,8 @@ var_dump($date->format('r'));
$date->setDate(-2147483648, 1, 1);
var_dump($date->format('r'));
var_dump($date->format('c'));
?>
--EXPECT--
string(32) "Sat, 01 Jan -1500 00:00:00 +0000"
string(42) "Unknown, 01 Jan -2147483648 00:00:00 +0000"
string(32) "Fri, 01 Jan -1500 00:00:00 +0000"
string(38) "Mon, 01 Jan -2147483648 00:00:00 +0000"
string(32) "-2147483648-01-01T00:00:00+00:00"
+4 -4
View File
@@ -44,7 +44,7 @@ array(4) {
string(6) "Y-m-d+"
string(19) "2001-11-29 13:20:01"
object(DateTime)#2 (3) {
object(DateTime)#%d (3) {
["date"]=>
string(26) "2001-11-29 %d:%d:%d.%d"
["timezone_type"]=>
@@ -70,7 +70,7 @@ array(4) {
string(7) "Y-m-d +"
string(19) "2001-11-29 13:20:01"
object(DateTime)#3 (3) {
object(DateTime)#%d (3) {
["date"]=>
string(26) "2001-11-29 %d:%d:%d.%d"
["timezone_type"]=>
@@ -96,7 +96,7 @@ array(4) {
string(6) "Y-m-d+"
string(10) "2001-11-29"
object(DateTime)#2 (3) {
object(DateTime)#%d (3) {
["date"]=>
string(26) "2001-11-29 %d:%d:%d.%d"
["timezone_type"]=>
@@ -139,7 +139,7 @@ array(4) {
string(7) "Y-m-d +"
string(11) "2001-11-29 "
object(DateTime)#2 (3) {
object(DateTime)#%d (3) {
["date"]=>
string(26) "2001-11-29 %d:%d:%d.%d"
["timezone_type"]=>
+175
View File
@@ -0,0 +1,175 @@
--TEST--
Bug #66986 (Some timezones are no longer valid in PHP 5.5.10)
--FILE--
<?php
$zones = array(
"CST6CDT", "Cuba", "Egypt", "Eire", "EST5EDT", "Factory", "GB-Eire",
"GMT0", "Greenwich", "Hongkong", "Iceland", "Iran", "Israel", "Jamaica",
"Japan", "Kwajalein", "Libya", "MST7MDT", "Navajo", "NZ-CHAT", "Poland",
"Portugal", "PST8PDT", "Singapore", "Turkey", "Universal", "W-SU",
"UTC", "GMT", "GMT+0100", "-0230",
);
foreach ( $zones as $zone )
{
$d = new DateTimeZone( $zone );
print_r($d);
}
?>
--EXPECT--
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => CST6CDT
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Cuba
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Egypt
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Eire
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => EST5EDT
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Factory
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => GB-Eire
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => GMT0
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Greenwich
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Hongkong
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Iceland
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Iran
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Israel
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Jamaica
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Japan
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Kwajalein
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Libya
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => MST7MDT
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Navajo
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => NZ-CHAT
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Poland
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Portugal
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => PST8PDT
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Singapore
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Turkey
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => Universal
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => W-SU
)
DateTimeZone Object
(
[timezone_type] => 3
[timezone] => UTC
)
DateTimeZone Object
(
[timezone_type] => 2
[timezone] => GMT
)
DateTimeZone Object
(
[timezone_type] => 1
[timezone] => +01:00
)
DateTimeZone Object
(
[timezone_type] => 1
[timezone] => -02:30
)
+14
View File
@@ -0,0 +1,14 @@
--TEST--
Bug #67109 (First uppercase letter breaks date string parsing)
--INI--
date.timezone=UTC
--FILE--
<?php
var_dump(date('d.m.Y',strtotime('last day of april')));
var_dump(date('d.m.Y',strtotime('Last day of april')));
var_dump(date('d.m.Y',strtotime('lAst Day of April')));
?>
--EXPECTF--
string(10) "30.04.%d"
string(10) "30.04.%d"
string(10) "30.04.%d"
@@ -0,0 +1,34 @@
--TEST--
Test date_interval_create_from_date_string() function : basic functionality
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--FILE--
<?php
$string = '1 day'; //P1D
$i = date_interval_create_from_date_string($string);
var_dump($i->d);
$string = '2 weeks'; //14 days
$i = date_interval_create_from_date_string($string);
var_dump($i->d);
$string = '3 months';
$i = date_interval_create_from_date_string($string);
var_dump($i->m);
$string = '4 years';
$i = date_interval_create_from_date_string($string);
var_dump($i->y);
$string = '1 year + 1 day';
$i = date_interval_create_from_date_string($string);
var_dump($i->y);
var_dump($i->d);
?>
--EXPECTF--
int(1)
int(14)
int(3)
int(4)
int(1)
int(1)
@@ -0,0 +1,42 @@
--TEST--
Test date_interval_create_from_date_string() function : null parameter
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--FILE--
<?php
$i = date_interval_create_from_date_string(null); //returns a empty object
var_dump($i);
?>
--EXPECTF--
object(DateInterval)#1 (15) {
["y"]=>
int(0)
["m"]=>
int(0)
["d"]=>
int(0)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
int(0)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}
@@ -0,0 +1,11 @@
--TEST--
Test date_interval_create_from_date_string() function : wrong parameter (array)
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--FILE--
<?php
$wrong_parameter = array();
$i = date_interval_create_from_date_string($wrong_parameter);
?>
--EXPECTF--
Warning: date_interval_create_from_date_string() expects parameter 1 to be string, array given in %s on line %d
@@ -0,0 +1,9 @@
--TEST--
Test date_interval_create_from_date_string() function : with 2 parameters (wrong).
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--FILE--
<?php
$i = date_interval_create_from_date_string('1 year', 'wrong');
?>
--EXPECTF--
Warning: date_interval_create_from_date_string() expects exactly 1 parameter, 2 given in %s on line %d
@@ -145,7 +145,7 @@ object(DateTime)#%d (3) {
-- int -12345 --
object(DateTime)#%d (3) {
["date"]=>
string(28) "-12345-02-15 08:34:10.000000"
string(28) "-12345-02-11 08:34:10.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
@@ -165,7 +165,7 @@ object(DateTime)#%d (3) {
-- float -10.5 --
object(DateTime)#%d (3) {
["date"]=>
string(27) "-0010-02-19 08:34:10.000000"
string(27) "-0010-02-14 08:34:10.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
+19
View File
@@ -0,0 +1,19 @@
--TEST--
Test the basics to function date_timestamp_set().
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
$dftz021 = date_default_timezone_get(); //UTC
$dtms021 = date_create();
date_timestamp_set($dtms021, 1234567890);
var_dump(date_format($dtms021, 'B => (U) => T Y-M-d H:i:s'));
?>
--EXPECTF--
string(47) "021 => (1234567890) => UTC 2009-Feb-13 23:31:30"
@@ -0,0 +1,17 @@
--TEST--
Test the function date_timestamp_set() with first null parameter.
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
$dftz021 = date_default_timezone_get(); //UTC
$dtms021 = date_create();
date_timestamp_set(null, 1234567890);
?>
--EXPECTF--
Warning: date_timestamp_set() expects parameter 1 to be DateTime, null given in %s on line %d
@@ -0,0 +1,24 @@
--TEST--
Test the function date_timestamp_set() with second null parameter.
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
$dftz021 = date_default_timezone_get(); //UTC
$dtms021 = date_create();
var_dump(date_timestamp_set($dtms021, null));
?>
--EXPECTF--
object(DateTime)#1 (3) {
["date"]=>
string(26) "1970-01-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
@@ -0,0 +1,17 @@
--TEST--
Check the function date_timestamp_set() with first parameter wrong (array).
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
$dftz021 = date_default_timezone_get(); //UTC
$dtms021 = array();
date_timestamp_set($dtms021, 123456789);
?>
--EXPECTF--
Warning: date_timestamp_set() expects parameter 1 to be DateTime, array given in %s on line %d
@@ -0,0 +1,15 @@
--TEST--
Check the function date_timestamp_set() with first parameter wrong (integer).
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
$dftz021 = date_default_timezone_get(); //UTC
date_timestamp_set(987654321, 123456789);
?>
--EXPECTF--
Warning: date_timestamp_set() expects parameter 1 to be DateTime, integer given in %s on line %d
@@ -0,0 +1,19 @@
--TEST--
Check the function date_timestamp_set() with second parameter wrong (array).
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
$dftz021 = date_default_timezone_get(); //UTC
$dtms021 = new DateTime();
$wrong_parameter = array();
date_timestamp_set($dtms021, $wrong_parameter);
?>
--EXPECTF--
Warning: date_timestamp_set() expects parameter 2 to be long, array given in %s on line %d
@@ -0,0 +1,17 @@
--TEST--
Check the function date_timestamp_set() with 3 parameters.
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
$dftz021 = date_default_timezone_get(); //UTC
$dtms021 = new DateTime();
date_timestamp_set($dtms021, 123456789, 'error');
?>
--EXPECTF--
Warning: date_timestamp_set() expects exactly 2 parameters, 3 given in %s on line %d
+2 -2
View File
@@ -61,7 +61,7 @@ array\(11\) {
\["mday"\]=>
int\((9|14|23)\)
\["wday"\]=>
int\((6|-4)\)
int\(0\)
\["mon"\]=>
int\((10|12)\)
\["year"\]=>
@@ -69,7 +69,7 @@ array\(11\) {
\["yday"\]=>
int\((282|347|295)\)
\["weekday"\]=>
string\((8|7)\) "(Saturday|Unknown)"
string\(6\) "Sunday"
\["month"\]=>
string\((7|8)\) "(October|December)"
\[0\]=>
+2 -2
View File
@@ -87,7 +87,7 @@ array\(9\) {
\[5\]=>
int\((104|1|-3843)\)
\[6\]=>
int\((5|-5)\)
int\(6\)
\[7\]=>
int\((281|346|294)\)
\[8\]=>
@@ -107,7 +107,7 @@ array\(9\) {
\["tm_year"\]=>
int\((104|1|-3843)\)
\["tm_wday"\]=>
int\((5|-5)\)
int\(6\)
\["tm_yday"\]=>
int\((281|346|294)\)
\["tm_isdst"\]=>
@@ -73,12 +73,12 @@ bool(false)
-- Testing timezone_offset_get() function with an invalid values for $datetime argument --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, object given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, object given in %s on line %d
bool(false)
Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, integer given in %s on line %d
bool(false)
Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, null given in %s on line %d
bool(false)
===DONE===
@@ -112,141 +112,141 @@ fclose( $file_handle );
-- int 0 --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- int 1 --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- int 12345 --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- int -12345 --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, integer given in %s on line %d
bool(false)
-- float 10.5 --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, double given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, double given in %s on line %d
bool(false)
-- float -10.5 --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, double given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, double given in %s on line %d
bool(false)
-- float .5 --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, double given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, double given in %s on line %d
bool(false)
-- empty array --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- int indexed array --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- associative array --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- nested arrays --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, array given in %s on line %d
bool(false)
-- uppercase NULL --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- lowercase null --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- lowercase true --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- lowercase false --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- uppercase TRUE --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- uppercase FALSE --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, boolean given in %s on line %d
bool(false)
-- empty string DQ --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- empty string SQ --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- string DQ --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- string SQ --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- mixed case string --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- heredoc --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, string given in %s on line %d
bool(false)
-- instance of classWithToString --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, object given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, object given in %s on line %d
bool(false)
-- instance of classWithoutToString --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, object given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, object given in %s on line %d
bool(false)
-- undefined var --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- unset var --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, null given in %s on line %d
bool(false)
-- resource --
Warning: timezone_offset_get() expects parameter 2 to be DateTime, resource given in %s on line %d
Warning: timezone_offset_get() expects parameter 2 to be DateTimeInterface, resource given in %s on line %d
bool(false)
===DONE===
+13
View File
@@ -0,0 +1,13 @@
--TEST--
Test the basics to function timezone_version_get().
--CREDITS--
Rodrigo Prado de Jesus <royopa [at] gmail [dot] com>
--INI--
date.timezone = UTC;
date_default_timezone_set("America/Sao_Paulo");
--FILE--
<?php
var_dump(timezone_version_get());
?>
--EXPECTREGEX--
string\([6-7]\) \"20[0-9][0-9]\.[1-9][0-9]?\"
@@ -0,0 +1,12 @@
--TEST--
timezone_version_get: Test that timezone_location_get returns a date concatenated with a dot and a version number
--CREDITS--
Rodrigo Wanderley de Melo Cardoso <rodrigogepem@gmail.com>
#PHPTestFest2014 São Paulo 2014-07-05
--INI--
date.timezone=UTC
--FILE--
<?php $versionTimezone = timezone_version_get();
echo $versionTimezone; ?>
--EXPECTREGEX--
^[12][0-9]{3}.[0-9]+$
+1 -8
View File
@@ -183,14 +183,7 @@ int dom_attr_value_write(dom_object *obj, zval *newval TSRMLS_DC)
node_list_unlink(attrp->children TSRMLS_CC);
}
if (newval->type != IS_STRING) {
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_string(newval);
}
convert_to_string_copy(newval, value_copy);
xmlNodeSetContentLen((xmlNodePtr) attrp, Z_STRVAL_P(newval), Z_STRLEN_P(newval) + 1);
+1 -8
View File
@@ -112,14 +112,7 @@ int dom_characterdata_data_write(dom_object *obj, zval *newval TSRMLS_DC)
return FAILURE;
}
if (newval->type != IS_STRING) {
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_string(newval);
}
convert_to_string_copy(newval, value_copy);
xmlNodeSetContentLen(nodep, Z_STRVAL_P(newval), Z_STRLEN_P(newval) + 1);
+11 -72
View File
@@ -361,14 +361,7 @@ int dom_document_encoding_write(dom_object *obj, zval *newval TSRMLS_DC)
return FAILURE;
}
if (newval->type != IS_STRING) {
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_string(newval);
}
convert_to_string_copy(newval, value_copy);
handler = xmlFindCharEncodingHandler(Z_STRVAL_P(newval));
@@ -428,12 +421,7 @@ int dom_document_standalone_write(dom_object *obj, zval *newval TSRMLS_DC)
return FAILURE;
}
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_long(newval);
convert_to_long_copy(newval, value_copy);
standalone = Z_LVAL_P(newval);
if (standalone > 0) {
@@ -500,14 +488,7 @@ int dom_document_version_write(dom_object *obj, zval *newval TSRMLS_DC)
xmlFree((xmlChar *) docp->version );
}
if (newval->type != IS_STRING) {
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_string(newval);
}
convert_to_string_copy(newval, value_copy);
docp->version = xmlStrdup((const xmlChar *) Z_STRVAL_P(newval));
@@ -544,12 +525,7 @@ int dom_document_strict_error_checking_write(dom_object *obj, zval *newval TSRML
zval value_copy;
dom_doc_propsptr doc_prop;
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_boolean(newval);
convert_to_boolean_copy(newval, value_copy);
if (obj->document) {
doc_prop = dom_get_doc_props(obj->document);
@@ -587,12 +563,7 @@ int dom_document_format_output_write(dom_object *obj, zval *newval TSRMLS_DC)
zval value_copy;
dom_doc_propsptr doc_prop;
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_boolean(newval);
convert_to_boolean_copy(newval, value_copy);
if (obj->document) {
doc_prop = dom_get_doc_props(obj->document);
@@ -629,12 +600,7 @@ int dom_document_validate_on_parse_write(dom_object *obj, zval *newval TSRMLS_DC
zval value_copy;
dom_doc_propsptr doc_prop;
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_boolean(newval);
convert_to_boolean_copy(newval, value_copy);
if (obj->document) {
doc_prop = dom_get_doc_props(obj->document);
@@ -671,12 +637,7 @@ int dom_document_resolve_externals_write(dom_object *obj, zval *newval TSRMLS_DC
zval value_copy;
dom_doc_propsptr doc_prop;
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_boolean(newval);
convert_to_boolean_copy(newval, value_copy);
if (obj->document) {
doc_prop = dom_get_doc_props(obj->document);
@@ -713,12 +674,7 @@ int dom_document_preserve_whitespace_write(dom_object *obj, zval *newval TSRMLS_
zval value_copy;
dom_doc_propsptr doc_prop;
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_boolean(newval);
convert_to_boolean_copy(newval, value_copy);
if (obj->document) {
doc_prop = dom_get_doc_props(obj->document);
@@ -755,12 +711,7 @@ int dom_document_recover_write(dom_object *obj, zval *newval TSRMLS_DC)
zval value_copy;
dom_doc_propsptr doc_prop;
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_boolean(newval);
convert_to_boolean_copy(newval, value_copy);
if (obj->document) {
doc_prop = dom_get_doc_props(obj->document);
@@ -797,12 +748,7 @@ int dom_document_substitue_entities_write(dom_object *obj, zval *newval TSRMLS_D
zval value_copy;
dom_doc_propsptr doc_prop;
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_boolean(newval);
convert_to_boolean_copy(newval, value_copy);
if (obj->document) {
doc_prop = dom_get_doc_props(obj->document);
@@ -861,14 +807,7 @@ int dom_document_document_uri_write(dom_object *obj, zval *newval TSRMLS_DC)
xmlFree((xmlChar *) docp->URL);
}
if (newval->type != IS_STRING) {
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_string(newval);
}
convert_to_string_copy(newval, value_copy);
docp->URL = xmlStrdup((const xmlChar *) Z_STRVAL_P(newval));
+2
View File
@@ -137,6 +137,8 @@ int dom_node_text_content_write(dom_object *obj, zval *newval TSRMLS_DC);
/* nodelist properties */
int dom_nodelist_length_read(dom_object *obj, zval **retval TSRMLS_DC);
xmlNodePtr dom_nodelist_xml_item(dom_nnodemap_object *objmap, long index);
xmlNodePtr dom_nodelist_baseobj_item(dom_nnodemap_object *objmap, long index);
/* notation properties */
int dom_notation_public_id_read(dom_object *obj, zval **retval TSRMLS_DC);
+19 -16
View File
@@ -352,14 +352,7 @@ int dom_node_node_value_write(dom_object *obj, zval *newval TSRMLS_DC)
case XML_COMMENT_NODE:
case XML_CDATA_SECTION_NODE:
case XML_PI_NODE:
if (newval->type != IS_STRING) {
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_string(newval);
}
convert_to_string_copy(newval, value_copy);
xmlNodeSetContentLen(nodep, Z_STRVAL_P(newval), Z_STRLEN_P(newval) + 1);
if (newval == &value_copy) {
zval_dtor(newval);
@@ -794,14 +787,7 @@ int dom_node_prefix_write(dom_object *obj, zval *newval TSRMLS_DC)
nsnode = xmlDocGetRootElement(nodep->doc);
}
}
if (newval->type != IS_STRING) {
if(Z_REFCOUNT_P(newval) > 1) {
value_copy = *newval;
zval_copy_ctor(&value_copy);
newval = &value_copy;
}
convert_to_string(newval);
}
convert_to_string_copy(newval, value_copy);
prefix = Z_STRVAL_P(newval);
if (nsnode && nodep->ns != NULL && !xmlStrEqual(nodep->ns->prefix, (xmlChar *)prefix)) {
strURI = (char *) nodep->ns->href;
@@ -942,6 +928,23 @@ int dom_node_text_content_read(dom_object *obj, zval **retval TSRMLS_DC)
int dom_node_text_content_write(dom_object *obj, zval *newval TSRMLS_DC)
{
xmlNode *nodep = dom_object_get_node(obj);
zval value_copy;
xmlChar *enc_str;
if (nodep == NULL) {
php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
return FAILURE;
}
convert_to_string_copy(newval, value_copy);
enc_str = xmlEncodeEntitiesReentrant(nodep->doc, Z_STRVAL_P(newval));
xmlNodeSetContent(nodep, enc_str);
xmlFree(enc_str);
if (newval == &value_copy) {
zval_dtor(newval);
}
return SUCCESS;
}
+55 -2
View File
@@ -72,6 +72,7 @@ zend_class_entry *dom_namespace_node_class_entry;
/* }}} */
zend_object_handlers dom_object_handlers;
zend_object_handlers dom_nnodemap_object_handlers;
static HashTable classes;
/* {{{ prop handler tables */
@@ -518,7 +519,7 @@ static HashTable* dom_get_debug_info_helper(zval *object, int *is_temp TSRMLS_DC
value = null_value;
} else if (Z_TYPE_P(value) == IS_OBJECT) {
/* these are zvalues create on demand, with refcount and is_ref
* status left in an uninitalized stated */
* status left in an uninitialized stated */
zval_dtor(value);
efree(value);
@@ -668,6 +669,10 @@ PHP_MINIT_FUNCTION(dom)
dom_object_handlers.has_property = dom_property_exists;
dom_object_handlers.get_debug_info = dom_get_debug_info;
memcpy(&dom_nnodemap_object_handlers, &dom_object_handlers, sizeof(zend_object_handlers));
dom_nnodemap_object_handlers.read_dimension = dom_nodelist_read_dimension;
dom_nnodemap_object_handlers.has_dimension = dom_nodelist_has_dimension;
zend_hash_init(&classes, 0, NULL, NULL, 1);
INIT_CLASS_ENTRY(ce, "DOMException", php_dom_domexception_class_functions);
@@ -1297,7 +1302,7 @@ zend_object_value dom_nnodemap_objects_new(zend_class_entry *class_type TSRMLS_D
retval.handle = zend_objects_store_put(intern, dom_nnodemap_object_dtor, (zend_objects_free_object_storage_t)dom_nnodemap_objects_free_storage, dom_objects_clone TSRMLS_CC);
intern->handle = retval.handle;
retval.handlers = dom_get_obj_handlers(TSRMLS_C);
retval.handlers = &dom_nnodemap_object_handlers;
return retval;
}
@@ -1674,6 +1679,54 @@ xmlNsPtr dom_get_nsdecl(xmlNode *node, xmlChar *localName) {
}
/* }}} end dom_get_nsdecl */
static inline long dom_get_long(zval *offset) /* {{{ */
{
if (Z_TYPE_P(offset) == IS_LONG) {
return Z_LVAL_P(offset);
} else {
zval tmp;
MAKE_COPY_ZVAL(&offset, &tmp);
convert_to_long(&tmp);
return Z_LVAL(tmp);
}
}
/* }}} */
zval *dom_nodelist_read_dimension(zval *object, zval *offset, int type TSRMLS_DC) /* {{{ */
{
zval *rv, offset_copy = zval_used_for_init;
if (!offset) {
return NULL;
}
ZVAL_LONG(&offset_copy, dom_get_long(offset));
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), NULL, "item", &rv, &offset_copy);
Z_DELREF_P(rv);
return rv;
} /* }}} end dom_nodelist_read_dimension */
int dom_nodelist_has_dimension(zval *object, zval *member, int check_empty TSRMLS_DC)
{
long offset = dom_get_long(member);
if (offset < 0) {
return 0;
} else {
zval *length = zend_read_property(Z_OBJCE_P(object), object, "length", sizeof("length") - 1, 0 TSRMLS_CC);
int ret = length && offset < Z_LVAL_P(length);
FREE_ZVAL(length);
return ret;
}
} /* }}} end dom_nodelist_has_dimension */
#endif /* HAVE_DOM */
/*
+16
View File
@@ -123,6 +123,8 @@ xmlNode *php_dom_libxml_hash_iter(xmlHashTable *ht, int index);
xmlNode *php_dom_libxml_notation_iter(xmlHashTable *ht, int index);
zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
int dom_set_doc_classmap(php_libxml_ref_obj *document, zend_class_entry *basece, zend_class_entry *ce TSRMLS_DC);
zval *dom_nodelist_read_dimension(zval *object, zval *offset, int type TSRMLS_DC);
int dom_nodelist_has_dimension(zval *object, zval *member, int check_empty TSRMLS_DC);
#define REGISTER_DOM_CLASS(ce, name, parent_ce, funcs, entry) \
INIT_CLASS_ENTRY(ce, name, funcs); \
@@ -146,6 +148,20 @@ entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not yet implemented"); \
return;
#define convert_to_copy_master(orig, copy, lower_type, upper_type) \
if (Z_TYPE_P(orig) != IS_##upper_type) { \
if (Z_REFCOUNT_P(orig) > 1) { \
copy = *orig; \
zval_copy_ctor(&copy); \
orig = &copy; \
} \
convert_to_##lower_type(orig); \
}
#define convert_to_string_copy(orig, copy) convert_to_copy_master(orig, copy, string, STRING);
#define convert_to_long_copy(orig, copy) convert_to_copy_master(orig, copy, long, LONG);
#define convert_to_boolean_copy(orig, copy) convert_to_copy_master(orig, copy, boolean, BOOL);
#define DOM_NODELIST 0
#define DOM_NAMEDNODEMAP 1
+87
View File
@@ -0,0 +1,87 @@
--TEST--
Bug #67949: DOMNodeList elements should be accessible through array notation
--FILE--
<?php
$html = <<<HTML
<div>data</div>
<a href="test">hello world</a>
HTML;
$doc = new DOMDocument;
$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('div');
echo "testing has_dimension\n";
var_dump(isset($nodes[0]));
var_dump(isset($nodes[1]));
var_dump(isset($nodes[-1]));
echo "testing property access\n";
var_dump($nodes[0]->textContent);
var_dump($nodes[1]->textContent);
echo "testing offset not a long\n";
$offset = ['test'];
var_dump($offset);
var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent);
var_dump($offset);
$something = 'test';
$offset = &$something;
var_dump($offset);
var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent);
var_dump($offset);
$offset = 'test';
var_dump($offset);
var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent);
var_dump($offset);
echo "testing read_dimension with null offset\n";
var_dump($nodes[][] = 1);
echo "testing attribute access\n";
$anchor = $doc->getElementsByTagName('a')[0];
var_dump($anchor->attributes[0]->name);
echo "==DONE==\n";
--EXPECTF--
testing has_dimension
bool(true)
bool(false)
bool(false)
testing property access
string(4) "data"
Notice: Trying to get property of non-object in %s on line %d
NULL
testing offset not a long
array(1) {
[0]=>
string(4) "test"
}
Notice: Trying to get property of non-object in %s on line %d
bool(false)
NULL
array(1) {
[0]=>
string(4) "test"
}
string(4) "test"
bool(true)
string(4) "data"
string(4) "test"
string(4) "test"
bool(true)
string(4) "data"
string(4) "test"
testing read_dimension with null offset
NULL
testing attribute access
string(4) "href"
==DONE==
Loaded 100 of 490 files, more files were not shown because too many files have changed in this diff. Show more