]> granicus.if.org Git - php/log
php
5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Tue, 8 Oct 2019 10:35:47 +0000 (12:35 +0200)]
Merge branch 'PHP-7.4'

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Tue, 8 Oct 2019 10:35:35 +0000 (12:35 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoCheck for exception after applying stream filters
Nikita Popov [Tue, 8 Oct 2019 10:18:59 +0000 (12:18 +0200)]
Check for exception after applying stream filters

This makes the stream opening actually fail, and avoids assertion
failures when we tokenize with EG(exception) set.

Also avoid throwing an additional warning after an exception has
already been thrown.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Tue, 8 Oct 2019 10:11:19 +0000 (12:11 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #78642: Wrong libiconv version displayed

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 8 Oct 2019 10:10:35 +0000 (12:10 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78642: Wrong libiconv version displayed

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Tue, 8 Oct 2019 10:09:46 +0000 (12:09 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix #78642: Wrong libiconv version displayed

5 years agoFix #78642: Wrong libiconv version displayed
Christoph M. Becker [Tue, 8 Oct 2019 10:09:11 +0000 (12:09 +0200)]
Fix #78642: Wrong libiconv version displayed

The high byte of `_libiconv_version` specifies the major version; the
low byte the minor version.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Tue, 8 Oct 2019 10:06:11 +0000 (12:06 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  7.3.12 is next

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 8 Oct 2019 10:05:21 +0000 (12:05 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  7.3.12 is next

5 years ago7.3.12 is next
Christoph M. Becker [Tue, 8 Oct 2019 10:04:25 +0000 (12:04 +0200)]
7.3.12 is next

5 years agoMerge branch 'PHP-7.4'
Remi Collet [Tue, 8 Oct 2019 09:37:09 +0000 (11:37 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  next is 7.2.25

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Remi Collet [Tue, 8 Oct 2019 09:36:57 +0000 (11:36 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  next is 7.2.25

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Remi Collet [Tue, 8 Oct 2019 09:36:36 +0000 (11:36 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  next is 7.2.25

5 years agonext is 7.2.25
Remi Collet [Tue, 8 Oct 2019 09:36:10 +0000 (11:36 +0200)]
next is 7.2.25

5 years agoMerge branch 'PHP-7.4'
Remi Collet [Tue, 8 Oct 2019 08:49:30 +0000 (10:49 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  add librt for opcache

5 years agoadd librt for opcache
Remi Collet [Mon, 7 Oct 2019 14:31:09 +0000 (16:31 +0200)]
add librt for opcache

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Tue, 8 Oct 2019 07:50:43 +0000 (09:50 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #78641: addGlob can modify given remove_path value

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 8 Oct 2019 07:49:24 +0000 (09:49 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78641: addGlob can modify given remove_path value

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Tue, 8 Oct 2019 07:45:42 +0000 (09:45 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix #78641: addGlob can modify given remove_path value

5 years agoFix #78641: addGlob can modify given remove_path value
Christoph M. Becker [Tue, 8 Oct 2019 07:25:56 +0000 (09:25 +0200)]
Fix #78641: addGlob can modify given remove_path value

`remove_path` points to the given string, so we must not modify it.
Instead we use a duplicate, if we need the modification.

We may want to switch to `zend_string`s in master.

5 years agoMerge branch 'PHP-7.4'
Tyson Andre [Mon, 7 Oct 2019 23:33:03 +0000 (19:33 -0400)]
Merge branch 'PHP-7.4'

5 years agoFix grammar nits on php 7.4 UPGRADING
Tyson Andre [Mon, 7 Oct 2019 13:39:10 +0000 (09:39 -0400)]
Fix grammar nits on php 7.4 UPGRADING

5 years agoFix typo [ci skip]
Markus Staab [Mon, 7 Oct 2019 19:49:46 +0000 (21:49 +0200)]
Fix typo [ci skip]

5 years agoFix com_dotnet build
Christoph M. Becker [Mon, 7 Oct 2019 17:34:57 +0000 (19:34 +0200)]
Fix com_dotnet build

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 15:52:54 +0000 (17:52 +0200)]
Merge branch 'PHP-7.4'

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 7 Oct 2019 15:52:41 +0000 (17:52 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Mon, 7 Oct 2019 15:52:35 +0000 (17:52 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoCheck for object_init_ex() failure in user filter factory
Nikita Popov [Mon, 7 Oct 2019 15:40:59 +0000 (17:40 +0200)]
Check for object_init_ex() failure in user filter factory

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 15:31:12 +0000 (17:31 +0200)]
Merge branch 'PHP-7.4'

5 years agoFix leak when include fails in a read operation
Nikita Popov [Mon, 7 Oct 2019 15:29:33 +0000 (17:29 +0200)]
Fix leak when include fails in a read operation

Usually it will already fail when opening, but reads can also
fail since PHP 7.4, in which case we still need to place the
file handle in open_files to make sure the destructor will run
on it.

5 years agoComparison cleanup:
Dmitry Stogov [Mon, 7 Oct 2019 14:57:49 +0000 (17:57 +0300)]
Comparison cleanup:

- introduce zend_compare() that returns -1,0,1 dirctly (without intermediate zval)
- remove compare_objects() object handler, and keep only compare() handler

5 years agoExpect appropriate parameter type in the first place
Christoph M. Becker [Mon, 7 Oct 2019 12:06:09 +0000 (14:06 +0200)]
Expect appropriate parameter type in the first place

`mb_encode_numericentity()` and `mb_decode_numericentity()` accepted
arbitrary zvals as `$convmap`, but ignored anything else than arrays.
This appears to be an unresolved relict of their ZPP conversion for
PHP 5.3[1].  We now expect an array in the first place.

We also expect `count($convmap)` to be a multiple of four (else we
throw a `ValueError`), and do no longer special case empty `$convmap`.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=1c77f594294aee9d60e7309279c616c01c39ba9d>

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 14:44:44 +0000 (16:44 +0200)]
Merge branch 'PHP-7.4'

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 7 Oct 2019 14:44:39 +0000 (16:44 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Mon, 7 Oct 2019 14:44:31 +0000 (16:44 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoSet session.gc_probability=0 in bug78624.phpt
Nikita Popov [Mon, 7 Oct 2019 14:43:19 +0000 (16:43 +0200)]
Set session.gc_probability=0 in bug78624.phpt

We only want to test manually triggered session GC.
Avoid spurious output due to automatic GC.

5 years agoCheck num required args is correct in debug builds
Nikita Popov [Mon, 7 Oct 2019 09:23:51 +0000 (11:23 +0200)]
Check num required args is correct in debug builds

Also replace the assertion failure with an E_CORE_ERROR that
includes the function name, so these are easier to debug.

5 years agoFix required number of arguments in stubs
Nikita Popov [Mon, 7 Oct 2019 09:25:41 +0000 (11:25 +0200)]
Fix required number of arguments in stubs

* get_parent_class() argument is optional
* Mark array_filter() $callback as optional
* The $base of gmp_strval() is optional
* DateTime constructor also accepts zero arguments
* hash_update_file() stream context is optional
* xmlwriter_write_dtd_entity() $isparam argument is optional

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 14:32:42 +0000 (16:32 +0200)]
Merge branch 'PHP-7.4'

5 years agoFix number of required arguments in arginfo
Nikita Popov [Mon, 7 Oct 2019 09:42:22 +0000 (11:42 +0200)]
Fix number of required arguments in arginfo

* pack() only requires one argument
* stream_context_set_option() only requires two arguments
* ReflectionMethod::getClosure() accepts no args for static methods
* DOMDocument::createProcessingInstruction() only requires one arg
* DOMImplementation::createDocument() only requires two arguments
* DOMDocument::importNode() only requires one arg
* mysql_get_client_version() doesn't accept any args,
  despite what the docs say...

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 11:24:24 +0000 (13:24 +0200)]
Merge branch 'PHP-7.4'

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 7 Oct 2019 11:24:16 +0000 (13:24 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoBackport fix for uaf during pcre jit fallback
Nikita Popov [Mon, 7 Oct 2019 11:21:36 +0000 (13:21 +0200)]
Backport fix for uaf during pcre jit fallback

Backports parts of https://vcs.pcre.org/pcre2?view=revision&revision=1175
fixing https://bugs.exim.org/show_bug.cgi?id=2453.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Mon, 7 Oct 2019 11:22:47 +0000 (13:22 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Bail out if JUNIT is not enabled

5 years agoBail out if JUNIT is not enabled
Christoph M. Becker [Mon, 7 Oct 2019 11:20:14 +0000 (13:20 +0200)]
Bail out if JUNIT is not enabled

Otherwise we would try to access an array element of `false`, which
issues a notice as of PHP 7.4.0.  This would happen, for instance, for
bug63447_001.phpt if CGI is not available.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 10:43:51 +0000 (12:43 +0200)]
Merge branch 'PHP-7.4'

5 years agoDon't test default serialize max_depth
Nikita Popov [Mon, 7 Oct 2019 10:40:21 +0000 (12:40 +0200)]
Don't test default serialize max_depth

The default depth is large enough to cause stack overflows in
msan builds, though apparently only on old clang versions. Avoiding
a stack overflow there requires making the depth *much* smaller,
less than 1000. As I don't think that's reasonable for all the other
setups where 4k works fine, I'm just dropping this part of the test.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Mon, 7 Oct 2019 10:18:27 +0000 (12:18 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Delete temporary .post files of run-tests.php

5 years agoDelete temporary .post files of run-tests.php
Christoph M. Becker [Mon, 7 Oct 2019 10:13:02 +0000 (12:13 +0200)]
Delete temporary .post files of run-tests.php

Commit 5649267[1] changed run-tests.php to only delete .post files for
passing tests.  However, that code wouldn't be exercised at all, since
`run_test()` already returned, so we move the deletion upwards.

[1]
<http://git.php.net/?p=php-src.git;a=commit;h=5649267b257c78e46a934434c0bff894e0b5b694>

5 years agoConvert string function arginfo to PHP stubs
theodorejb [Mon, 7 Oct 2019 09:13:16 +0000 (11:13 +0200)]
Convert string function arginfo to PHP stubs

5 years agoConvert count_chars invalid mode error to ValueError
Nikita Popov [Mon, 7 Oct 2019 09:10:05 +0000 (11:10 +0200)]
Convert count_chars invalid mode error to ValueError

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 08:51:22 +0000 (10:51 +0200)]
Merge branch 'PHP-7.4'

5 years agoLimit retry_limit test to oniguruma >= 6.9.3
Nikita Popov [Mon, 7 Oct 2019 08:49:34 +0000 (10:49 +0200)]
Limit retry_limit test to oniguruma >= 6.9.3

This test is somewhat fragile in that it depends on how well a
particular regex is optimized. Apparently on 6.9.1 this regex
would hit the default retry_limit of 1000000 already. I'm limiting
this to 6.9.3 because that's the version that works for me.

5 years agoFix bug #78563
Mark [Fri, 4 Oct 2019 19:38:49 +0000 (20:38 +0100)]
Fix bug #78563

Make XmlParser final, unclonable and unserializable.

Closes GH-4778.

5 years agoUpdate opcache return type info for gd functions
Tyson Andre [Sun, 6 Oct 2019 17:24:48 +0000 (13:24 -0400)]
Update opcache return type info for gd functions

Many of these now have reflection types,
making the old signatures redundant or inaccurate.
(Some methods also throw Errors instead of returning null/false)

Closes GH-4785.

5 years agoUpdate zend_func_info for pcre/curl/iconv/json
Tyson Andre [Sun, 6 Oct 2019 17:48:49 +0000 (13:48 -0400)]
Update zend_func_info for pcre/curl/iconv/json

preg_quote and curl_error now have a non-null return type of `string`.

zend_func_info now duplicates many real reflection types
(some of which are now non-null)

Closes GH-4788.

5 years agoRemove redundant zend_func_info for zlib/hash/session
Tyson Andre [Sun, 6 Oct 2019 17:41:48 +0000 (13:41 -0400)]
Remove redundant zend_func_info for zlib/hash/session

E.g. hash_equals is outdated - it has a non-null reflection type of bool.

Remove redundant signatures for types that are obviously not reference
counted (`F0`).

Closes GH-4787.

5 years agoRemove redundant func info for ctype/bc/fileinfo
Tyson Andre [Sun, 6 Oct 2019 17:37:10 +0000 (13:37 -0400)]
Remove redundant func info for ctype/bc/fileinfo

This is limited to types that aren't reference counted.
I assume the info that there is exactly one reference
should be preserved (e.g. for bcsqrt)

Closes GH-4786.

5 years agoUpdate zend_func_info for zend, array extensions
Tyson Andre [Sun, 6 Oct 2019 18:37:22 +0000 (14:37 -0400)]
Update zend_func_info for zend, array extensions

Some of these functions now have real reflection types
and will throw instead of return null/false.

Others provide the exact same reflection type information
that zend_func_info does. (or would after updating outdated types)

Closes GH-4790.

5 years agoRemove most uses of ZEND_PARSE_PARAMETERS_END_EX()
Nikita Popov [Mon, 7 Oct 2019 08:02:18 +0000 (10:02 +0200)]
Remove most uses of ZEND_PARSE_PARAMETERS_END_EX()

As ZPP now throws, it makes no sense to specify an explicit return
value.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 7 Oct 2019 07:51:28 +0000 (09:51 +0200)]
Merge branch 'PHP-7.4'

[ci skip]

5 years agoFix typo in UPGRADING
Nikita Popov [Mon, 7 Oct 2019 07:51:13 +0000 (09:51 +0200)]
Fix typo in UPGRADING

[ci skip]

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Mon, 7 Oct 2019 07:19:08 +0000 (09:19 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #78623: Regression caused by "SP call yields additional empty result set"

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 7 Oct 2019 07:18:29 +0000 (09:18 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78623: Regression caused by "SP call yields additional empty result set"

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Mon, 7 Oct 2019 07:17:03 +0000 (09:17 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix #78623: Regression caused by "SP call yields additional empty result set"

5 years agoFix #78623: Regression caused by "SP call yields additional empty result set"
Christoph M. Becker [Mon, 7 Oct 2019 06:58:11 +0000 (08:58 +0200)]
Fix #78623: Regression caused by "SP call yields additional empty result set"

This reverts commit 41a4379cb45419a376043ca5f8c5a2bca82cea7c.

5 years agoExplicitly declare empty parameter list
Christoph M. Becker [Sun, 6 Oct 2019 17:03:27 +0000 (19:03 +0200)]
Explicitly declare empty parameter list

5 years agoJust return on failing ZPP
Christoph M. Becker [Sun, 6 Oct 2019 15:59:47 +0000 (17:59 +0200)]
Just return on failing ZPP

5 years agoAdd missing zend_parse_parameters_none()
Christoph M. Becker [Sun, 6 Oct 2019 15:55:59 +0000 (17:55 +0200)]
Add missing zend_parse_parameters_none()

5 years agoAdd MBString arginfo stubs
Christoph M. Becker [Sun, 6 Oct 2019 13:44:15 +0000 (15:44 +0200)]
Add MBString arginfo stubs

5 years agoAdd stubs for ext-xmlrpc
Thomas Gerbet [Sat, 5 Oct 2019 15:41:15 +0000 (17:41 +0200)]
Add stubs for ext-xmlrpc

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Sun, 6 Oct 2019 08:07:57 +0000 (10:07 +0200)]
Merge branch 'PHP-7.4'

5 years agoAdd support for mbstring.regex_retry_limit
Nikita Popov [Wed, 2 Oct 2019 10:42:46 +0000 (12:42 +0200)]
Add support for mbstring.regex_retry_limit

This is very similar to the existing mbstring.regex_stack_limit,
but for backtracking. The default value matches pcre.backtrack_limit.
Only used on libonig >= 2.8.0.

5 years agoUpdate NEWS
Benjamin Eberlei [Sat, 5 Oct 2019 17:01:50 +0000 (19:01 +0200)]
Update NEWS

5 years agoext/dom: Add global registerNodeNS flag on DOMXPath ctor and property.
Benjamin Eberlei [Mon, 23 Sep 2019 20:08:21 +0000 (22:08 +0200)]
ext/dom: Add global registerNodeNS flag on DOMXPath ctor and property.

5 years agoAdd missing zend_parse_parameters_none()
Christoph M. Becker [Sat, 5 Oct 2019 15:55:28 +0000 (17:55 +0200)]
Add missing zend_parse_parameters_none()

5 years agoAdd ext/pspell arginfo stubs
Christoph M. Becker [Sat, 5 Oct 2019 09:09:38 +0000 (11:09 +0200)]
Add ext/pspell arginfo stubs

5 years agoAdd arginfo stub for JsonSerializable
Christoph M. Becker [Sat, 5 Oct 2019 08:07:43 +0000 (10:07 +0200)]
Add arginfo stub for JsonSerializable

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 4 Oct 2019 20:47:10 +0000 (22:47 +0200)]
Merge branch 'PHP-7.4'

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 4 Oct 2019 20:46:53 +0000 (22:46 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMake sure T_ERROR is returned for all lexer exceptions
Nikita Popov [Fri, 4 Oct 2019 20:42:14 +0000 (22:42 +0200)]
Make sure T_ERROR is returned for all lexer exceptions

This originally manifested as a leak in oss-fuzz #18000. The following
is a reduced test case:

    <?php
    [
        5 => 1,
        "foo" > 1,
        "      " => "" == 0
    ];
    <<<BAR
    $x
     BAR;

Because this particular error condition did not return T_ERROR,
EG(exception) was set while performing binary operation constant
evaluation, which checks exceptions for cast failures.

Instead of adding this indirect test case, I'm adding an assertion
that the lexer has to return T_ERROR if EG(exception) is set.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 4 Oct 2019 14:04:42 +0000 (16:04 +0200)]
Merge branch 'PHP-7.4'

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 4 Oct 2019 14:04:34 +0000 (16:04 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoImprove diagnostic on PCRE JIT mmap failure
Nikita Popov [Fri, 4 Oct 2019 14:01:10 +0000 (16:01 +0200)]
Improve diagnostic on PCRE JIT mmap failure

Print a more informative message that indicates that this is
likely a permission issue, and also indicate that pcre.jit=0
can be used to work around it.

Also automatically disable the JIT, so that this message is
only shown once.

See bug #78630.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Fri, 4 Oct 2019 11:55:33 +0000 (13:55 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Split intl tests for ICU 65

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 4 Oct 2019 11:54:49 +0000 (13:54 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Split intl tests for ICU 65

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Fri, 4 Oct 2019 11:53:58 +0000 (13:53 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Split intl tests for ICU 65

5 years agoSplit intl tests for ICU 65
Christoph M. Becker [Fri, 4 Oct 2019 10:48:40 +0000 (12:48 +0200)]
Split intl tests for ICU 65

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 4 Oct 2019 10:42:58 +0000 (12:42 +0200)]
Merge branch 'PHP-7.4'

5 years agoFixed bug #78632
Nikita Popov [Fri, 4 Oct 2019 10:38:18 +0000 (12:38 +0200)]
Fixed bug #78632

I'm going for a very conservative fix here, where the previous
logic is restored for the case where an object is passed to
method_exists(). We might want to check against EG(scope) instead,
but this seems like a safer choice.

This means that behavior in PHP 7.4 changes only for
method_exists('C', 'privateMethodNotOnC'), which should be sensible.

5 years agoPrefer optimization without JMPZNZ instruction
Dmitry Stogov [Fri, 4 Oct 2019 09:51:01 +0000 (12:51 +0300)]
Prefer optimization without JMPZNZ instruction

5 years agoReplace "unexpected character" warning with ParseError
Nikita Popov [Wed, 2 Oct 2019 10:24:11 +0000 (12:24 +0200)]
Replace "unexpected character" warning with ParseError

Closes GH-4767.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 4 Oct 2019 08:39:32 +0000 (10:39 +0200)]
Merge branch 'PHP-7.4'

5 years agoFix use-after-free with delayed interned memoized const operand
Nikita Popov [Fri, 4 Oct 2019 08:38:11 +0000 (10:38 +0200)]
Fix use-after-free with delayed interned memoized const operand

We should addref CONST operands during memoization, as they might
be destroyed by later compilation, e.g. through interning.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 4 Oct 2019 08:12:16 +0000 (10:12 +0200)]
Merge branch 'PHP-7.4'

5 years agoFix crash when unpacking into array literal with string keys
Nikita Popov [Fri, 4 Oct 2019 08:11:30 +0000 (10:11 +0200)]
Fix crash when unpacking into array literal with string keys

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Fri, 4 Oct 2019 07:14:36 +0000 (09:14 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #78620: Out of memory error

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 4 Oct 2019 07:10:49 +0000 (09:10 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78620: Out of memory error

5 years agoMerge branch 'PHP-7.4'
Dmitry Stogov [Fri, 4 Oct 2019 07:10:53 +0000 (10:10 +0300)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fixed bug #78614 (Does not compile with DTRACE anymore)

5 years agoFixed bug #78614 (Does not compile with DTRACE anymore)
Dmitry Stogov [Fri, 4 Oct 2019 07:10:22 +0000 (10:10 +0300)]
Fixed bug #78614 (Does not compile with DTRACE anymore)