Commit Graph

9421 Commits

Author SHA1 Message Date
Stanislav Malyshev
b62eec67df Merge branch 'pull-request/1057'
* pull-request/1057:
  Renamed test case to match with reported bug
  Fixed serialization of non string values on __sleep
2015-03-22 20:27:35 -07:00
Stanislav Malyshev
cd5802e1b3 Merge branch 'PHP-5.6'
* PHP-5.6:
  Bacport fix bug #68741 - Null pointer dereference
  Check that the type is correct

Conflicts:
	ext/standard/incomplete_class.c
2015-03-22 18:33:39 -07:00
Stanislav Malyshev
fce9a856e7 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Bacport fix bug #68741 - Null pointer dereference
  Check that the type is correct
2015-03-22 18:32:16 -07:00
Stanislav Malyshev
723ffe2e89 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Bacport fix bug #68741 - Null pointer dereference
  Check that the type is correct
2015-03-22 18:30:56 -07:00
Stanislav Malyshev
fb83c76dee Check that the type is correct 2015-03-22 18:17:47 -07:00
Dmitry Stogov
aee2985f35 Merge branch 'scalar_type_hints_v5' of github.com:ircmaxell/php-src into scalar_type_hints_v5
* 'scalar_type_hints_v5' of github.com:ircmaxell/php-src: (54 commits)
  Add check for maintaining reference all the way through both type and return values
  Reduce the number of times that the zval needs to be separated in return type checking to those that are necessary
  Add test to ensure namespaced code can't use scalar types as class names
  Disallow relative namespace type declarations
  Add support and tests for null constant default values. Refactor complex conditionals into an extracted function for clarity and code-reuse
  Refactor as to not use call info, but add the flag to the op_array.
  Fix severity issues with callbacks, start work porting ZEND_STRLEN opcode to work with strict mode, more refactoring to come
  Fix C89 compatibility by moving a misplaced if statement
  Refactor gotos into more elaborate ifs to eliminate goto failure
  Fix return type separation with references. It now includes a check in the opcode handler and properly separates the value in both cases
  Add error case with invalid type declaration default value
  Add tests for using constants as defaults with scalar type declarations
  Refactor error messages to only append defined in the event of rendering as a fatal error. Fix relative typehints to not work
  Revert gd and mysqli to former calls for arg count errors. Fix first identified issues with zend_compile.c from nikic. Add tests for generator returns prior to first yield
  Style cleanup, as well as fixing bug with missing argument for WRONG_PARAM_COUNT_WITH_RETVAL
  Clean up API renames for zend_wrong_param_count to maintain BC, introducing a zend_wrong_param_count_ex() function when you know strict value
  Fix executor issue with ignoring strict types, which cleans up a bunch of errors. Additionally fix the expected error of 2 unrelated tests that was caused by a change to the core error messages
  Fix more tests, improve error messages in failure output for thrown exception
  Refactor error implementation significantly to centralize error mode behavior. Add zend_internal_type_error() function
  Refactor declare placement detection, allow encoding declares before type declares
  ...
2015-03-20 10:51:41 +03:00
Dmitry Stogov
d146d15003 Optimize zend_string_realloc() add more specialized versions zend_string_extend() and zend_string_truncate() 2015-03-20 02:02:42 +03:00
Anthony Ferrara
d22bfb8aa6 Merge in master, fix merge conflicts and update patch to support exceptions everywhere 2015-03-18 10:50:11 -04:00
Xinchen Hui
205fe3ab89 Re-fix tests 2015-03-18 12:28:27 +08:00
Xinchen Hui
22b8b1d3f3 Revert "fix tests"
This reverts commit 38e15d89d7.
2015-03-18 12:27:13 +08:00
Xinchen Hui
e78278d878 Revert "Fixed tests"
This reverts commit f57f1a903d.
2015-03-18 12:26:56 +08:00
Xinchen Hui
f57f1a903d Fixed tests 2015-03-18 12:19:56 +08:00
Stanislav Malyshev
d76b293ac7 forgot to commit this one 2015-03-17 17:16:27 -07:00
Stanislav Malyshev
63c9f830b1 add test for bug #68976 2015-03-17 17:16:15 -07:00
Stanislav Malyshev
bf2f03ddb3 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #69248 - heap overflow vulnerability in regcomp.c
  add test for bug #68976
2015-03-17 17:10:05 -07:00
Stanislav Malyshev
890b3987ab Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #69248 - heap overflow vulnerability in regcomp.c
  add test for bug #68976
2015-03-17 17:09:47 -07:00
Stanislav Malyshev
c83dd84ad6 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #69248 - heap overflow vulnerability in regcomp.c
  add test for bug #68976
2015-03-17 17:08:13 -07:00
Stanislav Malyshev
8b14d3052f add test for bug #68976 2015-03-17 17:03:46 -07:00
Stanislav Malyshev
780222f97f Fixed bug #68976 - Use After Free Vulnerability in unserialize() 2015-03-17 16:31:52 -07:00
Stanislav Malyshev
38e15d89d7 fix tests 2015-03-17 16:30:57 -07:00
Stanislav Malyshev
6632684e03 Fix bug #69207 - move_uploaded_file allows nulls in path 2015-03-17 16:30:57 -07:00
Stanislav Malyshev
33a5532b66 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #68976 - Use After Free Vulnerability in unserialize()

Conflicts:
	ext/standard/var_unserializer.c
2015-03-17 13:23:51 -07:00
Stanislav Malyshev
d5e523f52f Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed bug #68976 - Use After Free Vulnerability in unserialize()

Conflicts:
	ext/standard/var_unserializer.c
2015-03-17 13:22:12 -07:00
Stanislav Malyshev
646572d6d3 Fixed bug #68976 - Use After Free Vulnerability in unserialize() 2015-03-17 13:20:22 -07:00
Stanislav Malyshev
3477568b4e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix tests
  Fix bug #69207 - move_uploaded_file allows nulls in path
2015-03-17 12:58:00 -07:00
Stanislav Malyshev
9ba4db5e5d fix tests 2015-03-17 12:55:35 -07:00
Stanislav Malyshev
e55e40ca66 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #69207 - move_uploaded_file allows nulls in path
2015-03-17 12:48:37 -07:00
Stanislav Malyshev
1291d6bbee Fix bug #69207 - move_uploaded_file allows nulls in path 2015-03-17 12:47:58 -07:00
Dmitry Stogov
0a6ab089cd Use memcmp() instead of strncmp() 2015-03-16 15:53:54 +03:00
Dmitry Stogov
2b42d71908 Changed HashTable layout:
Removed HashTable->arHash (reduced memory consumption). Now hash slots may be accessed using HT_HASH() macro.
Hash slotas are allocated together with Buckets (before them) and lay in reverse order from HashTable->arData base address (see comments in Zend/zend_types.h)
Indexes in hash table and conflict resolution chains (Z_NEXT) may be stored as indeces or offsets in bytes, depending on system (32 or 64-bit).
HashTable data filelds are reordered to keep the most useful for zend_hash_find() data in the same CPU cache line.
2015-03-13 17:13:19 +03:00
Dmitry Stogov
8633685675 Use specialized macro for string zval creation 2015-03-12 16:53:51 +03:00
Dmitry Stogov
781d1c400c Improved table search 2015-03-11 15:02:47 +03:00
Dmitry Stogov
a30d328671 Errors converted to exceptions are not "recoverable" anymore. 2015-03-10 10:31:55 +03:00
Daniel Lowrey
2dec21634c Revert "Add stream_socket_crypto_info() function"
This reverts commit 13acb7ec65.

With the added capability to negotiate application layer protocols
via the TLS ALPN extension userland needs a method to access the
negotiated protocol on a given stream. The reverted commit added
a new stream_socket_crypto_info() function for this purpose.

This original approach was discarded in favor of using the
already-existing stream_get_meta_data() API which specifically
exists for just such purposes and requires the addition of no new
functions.
2015-03-09 23:15:57 -06:00
Juan Basso
6b7b5e777f Renamed test case to match with reported bug 2015-03-10 00:01:26 -04:00
Juan Basso
cbdeccd6ed Fixed serialization of non string values on __sleep
Returning just N; (null) on the __sleep makes the number of fields/values be incomplete and corrupting the generated value from serialize, making impossible to unserialize it.
2015-03-09 09:04:34 -04:00
Dmitry Stogov
1c94ff0595 Implement engine exceptions
RFC: https://wiki.php.net/rfc/engine_exceptions_for_php7

Pending changes regarding naming of BaseException and whether it
should be an interface.
2015-03-09 14:01:32 +01:00
Julien Pauli
2f06413340 Fix #67626 2015-03-08 23:45:11 -07:00
Julien Pauli
7d47d9fe23 Fix #67626 2015-03-08 23:40:55 -07:00
Stanislav Malyshev
43b426fbc4 Merge branch 'pull-request/1106' into PHP-5.5
* pull-request/1106:
  Fix #67626
2015-03-08 22:52:21 -07:00
Stanislav Malyshev
33ef5c47a5 Merge branch 'pull-request/1135'
* pull-request/1135:
  Return void like other functions
  Use zend_parse_parameters_none()
  Implemented FR #45235 A way to clear or reset the results for error_get_last()
2015-03-08 17:26:38 -07:00
Stanislav Malyshev
876a9be3ee Merge branch 'pull-request/1129'
* pull-request/1129:
  Array - make krsort FAST_ZPP compatibility
2015-03-08 17:04:13 -07:00
Reeze Xia
609f05fc19 ZTS cleanup 2015-03-08 19:25:55 +08:00
Xinchen Hui
28b408a242 Fixed bug #69198 (Compact function generate array with length but no content) 2015-03-07 16:49:07 +08:00
Tjerk Meesters
1236a30746 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #68917 (parse_url fails on some partial urls)
  Update test to run locally instead of remotely
2015-03-06 20:59:52 +08:00
Tjerk Meesters
469b5a9584 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #68917 (parse_url fails on some partial urls)
2015-03-06 20:58:20 +08:00
Tjerk Meesters
d7fb52ea20 Fixed bug #68917 (parse_url fails on some partial urls) 2015-03-06 20:51:22 +08:00
Daniel Lowrey
3e0a1a71e9 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug (#69195 Inconsistent stream crypto values across versions)

Conflicts:
	ext/standard/http_fopen_wrapper.c
2015-03-05 21:18:09 -07:00
Daniel Lowrey
10bc5fd4c4 Fixed bug (#69195 Inconsistent stream crypto values across versions)
PHP 5.6.0 altered the semantics of the following constants:

- STREAM_CRYPTO_METHOD_SSLv23_CLIENT
- STREAM_CRYPTO_METHOD_SSLv23_SERVER
- STREAM_CRYPTO_METHOD_TLS_CLIENT
- STREAM_CRYPTO_METHOD_TLS_SERVER

Instead of representing the SSLv23_*() handshake methods the v23
constants were changed to allow only SSLv2 or SSLv3 connections.
Likewise, the TLS methods were modified from using only the TLSv1
handshake to allowing TLS1,1.1, and 1.2. This created a situation
in which users upgrading from previous versions faced a potential
security degradation if they did not update code to use different
constants. In the interest of compatibility across PHP versions
the original semantics have been restored with the following
caveat:

**IMPORTANT**

The SSLv23 client/server methods will no longer negotiate the use
of the insecure SSLv2 or SSLv3 protocols by default. Users wishing
to allow these protocols must explicitly add them to the method
bitmask via the appropriate flags.
2015-03-05 21:09:39 -07:00
Daniel Lowrey
b5d97140c0 Merge branch 'tls-alpn'
* tls-alpn:
  Improve test to target specific issue
  Misc updates/cleanup
  Add TLS ALPN extension support in crypto client/server streams
  Add stream_socket_crypto_info() function
  Update for compatibility with newer openssl libs
2015-03-04 13:56:58 -07:00