]> granicus.if.org Git - php/log
php
4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Wed, 4 Nov 2020 09:55:59 +0000 (10:55 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix dynamic function definition in preload script

4 years agoFix dynamic function definition in preload script
Nikita Popov [Wed, 4 Nov 2020 09:54:08 +0000 (10:54 +0100)]
Fix dynamic function definition in preload script

We should use normal function renaming if the function is declared
during preloading itself, rather than afterwards.

This fixes a regression introduced by
68f80be9d1380de731930187250a7ed6b55ae196.

4 years agoDon't disable early binding during preloading script
Nikita Popov [Tue, 3 Nov 2020 15:45:13 +0000 (16:45 +0100)]
Don't disable early binding during preloading script

We should only disable early binding during the opcache_compile_file()
calls, not inside the preloading script or anything it includes.
The right condition to check for is whether we compile the file
without execution, as declaring classes is "execution".

4 years agoReport parse errors during preloading
Nikita Popov [Tue, 3 Nov 2020 15:24:54 +0000 (16:24 +0100)]
Report parse errors during preloading

4 years agoFix use of type copy ctor when importing trait properties
Nikita Popov [Tue, 3 Nov 2020 14:29:18 +0000 (15:29 +0100)]
Fix use of type copy ctor when importing trait properties

We shouldn't call the copy constructor inside the original type,
duh.

4 years agoAllow unlinked classes when performing in_compilation variance check
Nikita Popov [Tue, 3 Nov 2020 13:49:10 +0000 (14:49 +0100)]
Allow unlinked classes when performing in_compilation variance check

As preloading runs in in_compilation mode, we also need to allow
use of unlinked classes in lookup_class().

4 years agoFix variance checks on resolved union types
Nikita Popov [Tue, 3 Nov 2020 13:15:05 +0000 (14:15 +0100)]
Fix variance checks on resolved union types

This is a bit annoying: When preloading is used, types might be
resolved during inheritance checks, so we need to deal with CE
types rather than just NAME types everywhere.

4 years agoDon't ignore internal classes during preloading
Nikita Popov [Tue, 3 Nov 2020 10:50:14 +0000 (11:50 +0100)]
Don't ignore internal classes during preloading

When preloading, it's fine to make use of internal class information,
as we do not support Windows. It is also necessary to allow proper
variance checks against internal classes.

4 years agoFix persisting property info table with internal parent
Nikita Popov [Tue, 3 Nov 2020 10:26:52 +0000 (11:26 +0100)]
Fix persisting property info table with internal parent

If the property info comes from an internal parent, we won't have
an xlat entry for it. Leave it alone in that case.

4 years agoPreserve trait method alias name during preloading
Nikita Popov [Tue, 3 Nov 2020 09:55:59 +0000 (10:55 +0100)]
Preserve trait method alias name during preloading

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Tue, 3 Nov 2020 09:39:26 +0000 (10:39 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix another implicit function declaration in configure

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Tue, 3 Nov 2020 09:39:13 +0000 (10:39 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix another implicit function declaration in configure

4 years agoFix another implicit function declaration in configure
Nikita Popov [Tue, 3 Nov 2020 09:38:16 +0000 (10:38 +0100)]
Fix another implicit function declaration in configure

As mentioned on bug #80171. This one is in libtool.m4, might get
lost on libtool updates.

4 years agoFix typo in UPGRADING
Chris Brown [Mon, 2 Nov 2020 17:15:04 +0000 (12:15 -0500)]
Fix typo in UPGRADING

Closes GH-6395.

4 years agoImproved error message for typed class properties with null as default value
Bogdan Ungureanu [Mon, 2 Nov 2020 22:18:12 +0000 (00:18 +0200)]
Improved error message for typed class properties with null as default value

Closes GH-6396.

4 years ago[ci skip] Fix small typo
Chris Brown [Mon, 2 Nov 2020 16:34:10 +0000 (11:34 -0500)]
[ci skip] Fix small typo

`as` -> `was`

Closes GH-6394.

4 years agoRename opcache.jit_max_loops_unroll to opcache.jit_max_loop_unrolls
Nikita Popov [Mon, 2 Nov 2020 11:23:28 +0000 (12:23 +0100)]
Rename opcache.jit_max_loops_unroll to opcache.jit_max_loop_unrolls

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 2 Nov 2020 10:41:12 +0000 (11:41 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #70461: disable md5 code when it is not supported in net-snmp

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 2 Nov 2020 10:39:16 +0000 (11:39 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #70461: disable md5 code when it is not supported in net-snmp

4 years agoFix #70461: disable md5 code when it is not supported in net-snmp
Christoph M. Becker [Wed, 28 Oct 2020 14:30:49 +0000 (15:30 +0100)]
Fix #70461: disable md5 code when it is not supported in net-snmp

Patch contributed by Alexander Bergmann.

Closes GH-6389.

4 years agoFix tests for MariaDB
Dharman [Wed, 28 Oct 2020 14:15:07 +0000 (14:15 +0000)]
Fix tests for MariaDB

Closes GH-6390.

4 years agoFix test added in d44235acaeb4
Alex Dowad [Fri, 30 Oct 2020 20:11:27 +0000 (22:11 +0200)]
Fix test added in d44235acaeb4

4 years agoConvert numeric string array keys to integers correctly in JITted code
Alex Dowad [Thu, 29 Oct 2020 21:10:04 +0000 (23:10 +0200)]
Convert numeric string array keys to integers correctly in JITted code

While fixing bugs in mbstring, one of my new test cases failed with a strange
error message stating: 'Warning: Undefined array key 1...', when clearly the
array key had been set properly.

GDB'd that sucker and found that JIT'd PHP code was calling directly into
`zend_hash_add_new` (which was not converting the numeric string key to an
integer properly). But where was that code coming from? I examined the disasm,
looked up symbols to figure out where call instructions were going, then grepped
the codebase for those function names. It soon became clear that the disasm I
was looking at was compiled from `zend_jit_fetch_dim_w_helper`.

4 years agoFIxed bug #80299
Nikita Popov [Fri, 30 Oct 2020 16:23:18 +0000 (17:23 +0100)]
FIxed bug #80299

The must_wrap was leaking across iterations.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Fri, 30 Oct 2020 14:52:24 +0000 (15:52 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix SSA integrity violation for type inference in dead code

4 years agoFix SSA integrity violation for type inference in dead code
Nikita Popov [Fri, 30 Oct 2020 14:48:03 +0000 (15:48 +0100)]
Fix SSA integrity violation for type inference in dead code

The foreach body can never be executed and thus may contain empty
types. We should still uphold our SSA integrity invariants in that
case.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Fri, 30 Oct 2020 14:49:48 +0000 (15:49 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix bug79177.phpt wrt. JIT

4 years agoFix bug79177.phpt wrt. JIT
Christoph M. Becker [Fri, 30 Oct 2020 11:44:37 +0000 (12:44 +0100)]
Fix bug79177.phpt wrt. JIT

JIT ignores that the `zend_write` callback is overwritten, so we define
our own callback and caller.

We also fix the "inconsistent DLL binding" warnings on Windows, by
introducing `PHP_ZEND_TEST_API`.

Closes GH-6391.

4 years agoFix signed integer overflow
Nikita Popov [Fri, 30 Oct 2020 11:37:22 +0000 (12:37 +0100)]
Fix signed integer overflow

Fixes oss-fuzz #26763.

4 years agoFixed bug #80290
Nikita Popov [Fri, 30 Oct 2020 10:11:16 +0000 (11:11 +0100)]
Fixed bug #80290

Dropping the dtor arg args[3] rather than using STR_COPY: Since
PHP 8, we no longer support separation in call_user_function(),
so we also don't need to worry about things like arguments being
replaced with references.

4 years agoCreate TSSA loops for recursive call/return traces and move invariant type guards...
Dmitry Stogov [Fri, 30 Oct 2020 10:08:31 +0000 (13:08 +0300)]
Create TSSA loops for recursive call/return traces and move invariant type guards out of loops.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Thu, 29 Oct 2020 15:35:06 +0000 (16:35 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix bug #72413: Segfault with get_result and PS cursors

4 years agoFix bug #72413: Segfault with get_result and PS cursors
Dharman [Thu, 17 Sep 2020 11:35:26 +0000 (12:35 +0100)]
Fix bug #72413: Segfault with get_result and PS cursors

We cannot simply switch to use_result here, because the fetch_row
methods in get_result mode and in use_result/store_result mode
are different: In one case it accepts a statement, in the other
a return value zval. Thus, doing a switch to use_result results
in a segfault when trying to fetch a row.

Actually supporting get_result with cursors would require adding
cursor support in mysqlnd_result, not just mysqlnd_ps. That would
be a significant amount of effort and, given the age of the issue,
does not appear to be particularly likely to happen soon.

As such, we simply generate an error when using get_result()
with cursors, which is much better than causing a segfault.
Instead, parameter binding needs to be used.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Thu, 29 Oct 2020 13:18:04 +0000 (14:18 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Handle errors during PDO row fetch

4 years agoHandle errors during PDO row fetch
Nikita Popov [Thu, 29 Oct 2020 13:07:08 +0000 (14:07 +0100)]
Handle errors during PDO row fetch

The EOF flag also gets set on error, so we always end up ignoring
errors here.

However, we should only check errors for unbuffered results. For
buffered results, this function is guaranteed not to error, and
querying the errno may return an unrelated error.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Thu, 29 Oct 2020 12:10:32 +0000 (13:10 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix format specifier

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 29 Oct 2020 12:09:19 +0000 (13:09 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix format specifier

4 years agoFix format specifier
Christoph M. Becker [Thu, 29 Oct 2020 11:58:45 +0000 (12:58 +0100)]
Fix format specifier

In this function, `i` is of type `size_t`.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Thu, 29 Oct 2020 11:47:22 +0000 (12:47 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Report gone away error in one more place

4 years agoReport gone away error in one more place
Nikita Popov [Thu, 29 Oct 2020 10:43:17 +0000 (11:43 +0100)]
Report gone away error in one more place

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Thu, 29 Oct 2020 11:16:20 +0000 (12:16 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  [ci skip] Fix NEWS order

4 years ago[ci skip] Fix NEWS order
Christoph M. Becker [Thu, 29 Oct 2020 11:15:31 +0000 (12:15 +0100)]
[ci skip] Fix NEWS order

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Thu, 29 Oct 2020 11:02:54 +0000 (12:02 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #44618: Fetching may rely on uninitialized data

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 29 Oct 2020 11:00:07 +0000 (12:00 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #44618: Fetching may rely on uninitialized data

4 years agoFix #44618: Fetching may rely on uninitialized data
Christoph M. Becker [Thu, 29 Oct 2020 10:52:10 +0000 (11:52 +0100)]
Fix #44618: Fetching may rely on uninitialized data

Unless `SQLGetData()` returns `SQL_SUCCESS` or `SQL_SUCCESS_WITH_INFO`,
the `StrLen_or_IndPtr` output argument is not guaranteed to be properly
set.  Thus we handle retrieval failure other than `SQL_ERROR` by
yielding `false` for those column values and raising a warning.

Closes GH-6281.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Thu, 29 Oct 2020 09:39:58 +0000 (10:39 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Retain QUIT_SEND connection state

4 years agoRetain QUIT_SEND connection state
Nikita Popov [Thu, 29 Oct 2020 09:17:35 +0000 (10:17 +0100)]
Retain QUIT_SEND connection state

If the server goes away while reading a packet, don't go back into
the READY state. This will just cause broken pipe errors down the
line.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Wed, 28 Oct 2020 16:15:42 +0000 (17:15 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fixed bug #65825

4 years agoFixed bug #65825
Nikita Popov [Wed, 28 Oct 2020 16:12:35 +0000 (17:12 +0100)]
Fixed bug #65825

Set error_info when we fail to read a packet, instead of throwing
a warning. Additionally we also need to populate the right
error_info in rowp_read -- we'll later take the error from the
packet, not the connection.

No test case, as this is hard to reliably test. I'm using the
test case from:
https://github.com/php/php-src/pull/2131#issuecomment-538374838

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 28 Oct 2020 12:49:09 +0000 (13:49 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #79177: FFI doesn't handle well PHP exceptions within callback

4 years agoFix #79177: FFI doesn't handle well PHP exceptions within callback
Christoph M. Becker [Wed, 28 Oct 2020 11:01:28 +0000 (12:01 +0100)]
Fix #79177: FFI doesn't handle well PHP exceptions within callback

We have to error on unhandled exceptions in FFI callbacks, to avoid
passing back undefined values.

This has been discussed and agreed upon in a previous PR[1].

[1] <https://github.com/php/php-src/pull/5120>

Closes GH-6366.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Wed, 28 Oct 2020 11:18:17 +0000 (12:18 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fixed bug #66528

4 years agoFixed bug #66528
Nikita Popov [Wed, 28 Oct 2020 10:58:07 +0000 (11:58 +0100)]
Fixed bug #66528

Report errors in commit, rollback and autocommit handlers.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Dmitry Stogov [Wed, 28 Oct 2020 10:51:17 +0000 (13:51 +0300)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fixed run-time binding of preloaded dynamically declared function

4 years agoFixed run-time binding of preloaded dynamically declared function
Dmitry Stogov [Wed, 28 Oct 2020 10:50:14 +0000 (13:50 +0300)]
Fixed run-time binding of preloaded dynamically declared function

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Wed, 28 Oct 2020 10:35:38 +0000 (11:35 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Handle mysqli errors in more cases
  Sync test with master

4 years agoHandle mysqli errors in more cases
Dharman [Thu, 17 Sep 2020 22:45:17 +0000 (23:45 +0100)]
Handle mysqli errors in more cases

Report errors autocommit, commit, rollback and mysqli_stmt_attr_set.

Additionally, copy the error from conn to stmt when preparing fails,
so these errors are also handled by mysqli_stmt_prepare.

Closes GH-6157.

4 years agoSync test with master
Nikita Popov [Wed, 28 Oct 2020 10:30:22 +0000 (11:30 +0100)]
Sync test with master

Sync ext/mysqli/tests/mysqli_report.phpt with PHP-8.0/master, as
the current difference in indentation makes it hard to merge.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Wed, 28 Oct 2020 10:04:32 +0000 (11:04 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix bug #79375

4 years agoFix bug #79375
Dharman [Sun, 20 Sep 2020 15:32:47 +0000 (16:32 +0100)]
Fix bug #79375

Make sure deadlock errors are properly propagated and reports in
a number of places in mysqli and PDO MySQL.

This also fixes a memory and a segfault that can occur under these
conditions.

4 years agoDon't force rebuild of symbol table, when populating $http_response_header variable...
Dmitry Stogov [Wed, 28 Oct 2020 09:59:00 +0000 (12:59 +0300)]
Don't force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper

4 years agoFixed memory leak in Zend/tests/bug78999.phpt
Dmitry Stogov [Wed, 28 Oct 2020 07:47:23 +0000 (10:47 +0300)]
Fixed memory leak in Zend/tests/bug78999.phpt

4 years agoFixed tracing JIT support for aliasses (Zend/tests/bug75420.13.phpt and ext/standard...
Dmitry Stogov [Tue, 27 Oct 2020 20:44:29 +0000 (23:44 +0300)]
Fixed tracing JIT support for aliasses (Zend/tests/bug75420.13.phpt and ext/standard/tests/streams/bug60106.phpt)

4 years agoFixed support for named parameters (Zend/tests/named_params/references.phpt)
Dmitry Stogov [Tue, 27 Oct 2020 13:35:24 +0000 (16:35 +0300)]
Fixed support for named parameters (Zend/tests/named_params/references.phpt)

4 years agoUpdate NEWS for 8.0.0RC4
Gabriel Caruso [Tue, 27 Oct 2020 12:25:17 +0000 (12:25 +0000)]
Update NEWS for 8.0.0RC4

4 years agoUpdate NEWS for PHP 8.0.0RC3
Gabriel Caruso [Tue, 27 Oct 2020 12:07:36 +0000 (12:07 +0000)]
Update NEWS for PHP 8.0.0RC3

4 years agoDon't throw for out of bounds offsets in strspn()
Nikita Popov [Tue, 27 Oct 2020 10:23:49 +0000 (11:23 +0100)]
Don't throw for out of bounds offsets in strspn()

Make strspn($str1, $str2, $offset, $length) behaviorally
equivalent to strspn(substr($str1, $offset, $length), $str2)
by not throwing for out of bounds offset.

There have been two reports that this change cause issues,
including bug #80285.

4 years agoParameter type and name fixes in ext/standard
Máté Kocsis [Sat, 24 Oct 2020 12:15:07 +0000 (14:15 +0200)]
Parameter type and name fixes in ext/standard

Closes GH-6382

4 years agoFixed support for typed references
Dmitry Stogov [Tue, 27 Oct 2020 09:59:35 +0000 (12:59 +0300)]
Fixed support for typed references

4 years agoSkip bug46024.phpt under asan
Nikita Popov [Tue, 27 Oct 2020 09:33:59 +0000 (10:33 +0100)]
Skip bug46024.phpt under asan

There is a legitimate leak here, but I don't think it's worthwhile
to fix it. It involves a process terminated while printing phpinfo.

4 years agoFixed tracing JIT for tests/classes/unset_properties.phpt
Dmitry Stogov [Tue, 27 Oct 2020 07:30:38 +0000 (10:30 +0300)]
Fixed tracing JIT for tests/classes/unset_properties.phpt

4 years agoFixed memory leak
Dmitry Stogov [Mon, 26 Oct 2020 22:20:22 +0000 (01:20 +0300)]
Fixed memory leak

4 years agoAdd missing observer tests
Sammy Kaye Powers [Fri, 23 Oct 2020 20:38:42 +0000 (13:38 -0700)]
Add missing observer tests

Closes GH-6378

4 years agoFixed register allocation
Dmitry Stogov [Mon, 26 Oct 2020 18:48:47 +0000 (21:48 +0300)]
Fixed register allocation

4 years agoFixed MAY_BE_INDIRECT inference.
Dmitry Stogov [Mon, 26 Oct 2020 18:48:13 +0000 (21:48 +0300)]
Fixed MAY_BE_INDIRECT inference.

4 years agoBetter JIT support for aliases
Dmitry Stogov [Mon, 26 Oct 2020 16:05:08 +0000 (19:05 +0300)]
Better JIT support for aliases

4 years agoFix inconsistency in PDO transaction state
Nikita Popov [Tue, 20 Oct 2020 09:29:47 +0000 (11:29 +0200)]
Fix inconsistency in PDO transaction state

This addresses an issue introduced by #4996 and reported in
https://bugs.php.net/bug.php?id=80260.

Now that PDO::inTransaction() reports the real transaction state
of the connection, there may be a mismatch with PDOs internal
transaction state (in_tcx). This is compounded by the fact that
MySQL performs implicit commits for DDL queries.

This patch fixes the issue by making beginTransaction/commit/rollBack
work on the real transaction state provided by the driver as well
(or falling back to in_tcx if the driver does not support it).

This does mean that writing something like

    $pdo->beginTransaction();
    $pdo->exec('CREATE DATABASE ...');
    $pdo->rollBack(); // <- illegal

will now result in an error, because the CREATE DATABASE already
committed the transaction. I believe this behavior is both correct
and desired -- otherwise, there is no indication that the code did
not behave correctly and the rollBack() was effectively ignored.
However, this is also a BC break.

Closes GH-6355.

4 years agoDeny serialization of finfo objects
Nikita Popov [Mon, 26 Oct 2020 15:54:30 +0000 (16:54 +0100)]
Deny serialization of finfo objects

The resulting objects were already unusable, make it error out
earlier.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Mon, 26 Oct 2020 15:51:53 +0000 (16:51 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Deny cloning of fileinfo objects

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 26 Oct 2020 15:50:48 +0000 (16:50 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Deny cloning of fileinfo objects

4 years agoDeny cloning of fileinfo objects
Nikita Popov [Mon, 26 Oct 2020 15:50:20 +0000 (16:50 +0100)]
Deny cloning of fileinfo objects

Using a cloned finfo object will crash.

4 years agoConsistent error handling in mysqli_poll
Dharman [Wed, 14 Oct 2020 22:17:48 +0000 (23:17 +0100)]
Consistent error handling in mysqli_poll

This error condition should not actually be reachable, but change
it to be consistent with the other ones.

Also fix a memory leak.

Closes GH-6340.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 26 Oct 2020 14:42:08 +0000 (15:42 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Revert "Fix out-of-bounds write"

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 26 Oct 2020 14:40:55 +0000 (15:40 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Revert "Fix out-of-bounds write"

4 years agoRevert "Fix out-of-bounds write"
Christoph M. Becker [Tue, 20 Oct 2020 15:09:20 +0000 (17:09 +0200)]
Revert "Fix out-of-bounds write"

This reverts commit bf6873a18e3b6b00f82a645c0893a281ae8eadb8.

CVE-2020-26159 is bogus; the "bug" was apparently a false positive
reported by Coverity, and the "fix" apparently wrong, see
<https://github.com/kkos/oniguruma/issues/221>.

Closes GH-6357.

4 years agoRe-enable laravel tests
Nikita Popov [Mon, 19 Oct 2020 14:45:44 +0000 (16:45 +0200)]
Re-enable laravel tests

Laravel is now sufficiently PHP 8 compatible.

Closes GH-6353.

4 years agoFixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1...
Dmitry Stogov [Mon, 26 Oct 2020 12:56:37 +0000 (15:56 +0300)]
Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1.phpt

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 26 Oct 2020 12:14:05 +0000 (13:14 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80268: loadHTML() truncates at NUL bytes

4 years agoDon't set xdebug.default_enable in run-tests
bashkarev [Mon, 12 Oct 2020 12:28:48 +0000 (15:28 +0300)]
Don't set xdebug.default_enable in run-tests

This throws a deprecation warning in XDebug 3.

Closes GH-6324.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 26 Oct 2020 12:08:47 +0000 (13:08 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #80268: loadHTML() truncates at NUL bytes

4 years agoFix #80268: loadHTML() truncates at NUL bytes
Christoph M. Becker [Fri, 23 Oct 2020 09:06:30 +0000 (11:06 +0200)]
Fix #80268: loadHTML() truncates at NUL bytes

libxml2 has no particular issues parsing HTML strings with NUL bytes;
these just cause truncation of the current text content, but parsing
continues generally.  Since `::loadHTMLFile()` already supports NUL
bytes, `::loadHTML()` should as well.

Note that this is different from XML, which does not allow any NUL
bytes.

Closes GH-6368.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Mon, 26 Oct 2020 11:41:12 +0000 (12:41 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Declare may_retry_reparse_point on windows only

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 26 Oct 2020 11:40:56 +0000 (12:40 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Declare may_retry_reparse_point on windows only

4 years agoDeclare may_retry_reparse_point on windows only
Nikita Popov [Mon, 26 Oct 2020 11:40:27 +0000 (12:40 +0100)]
Declare may_retry_reparse_point on windows only

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 26 Oct 2020 10:55:10 +0000 (11:55 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #62474: com_event_sink crashes on certain arguments

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 26 Oct 2020 10:54:33 +0000 (11:54 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #62474: com_event_sink crashes on certain arguments

4 years agoFix #62474: com_event_sink crashes on certain arguments
Christoph M. Becker [Thu, 22 Oct 2020 15:50:22 +0000 (17:50 +0200)]
Fix #62474: com_event_sink crashes on certain arguments

We have to make sure that the variant is of type `VT_DISPATCH` before
we access it as such.

Closes GH-6372.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 26 Oct 2020 10:22:16 +0000 (11:22 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80258: Windows Deduplication Enabled, randon permission errors

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 26 Oct 2020 10:21:35 +0000 (11:21 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #80258: Windows Deduplication Enabled, randon permission errors

4 years agoFix #80258: Windows Deduplication Enabled, randon permission errors
Christoph M. Becker [Mon, 19 Oct 2020 15:41:58 +0000 (17:41 +0200)]
Fix #80258: Windows Deduplication Enabled, randon permission errors

A recent bug fix regarding symlinks claimed:

> After resolving reparse points, the path still may be a reparse
> point; in that case we have to resolve that reparse point as well.

While that is basically correct, some reparse points may point to
inaccessible system folders (e.g. `IO_REPARSE_TAG_DEDUP` points to
"\System Volume Information").  Since we don't know details about
arbitrary reparse points, and are mainly interested in nested symlinks,
we take a step back, and only resolve `IO_REPARSE_TAG_SYMLINK` for now.

Close GH-6354.