]>
granicus.if.org Git - php/log
Nikita Popov [Thu, 29 Oct 2020 13:18:22 +0000 (14:18 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Handle errors during PDO row fetch
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
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.
Christoph M. Becker [Thu, 29 Oct 2020 12:11:00 +0000 (13:11 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fix format specifier
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
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
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`.
Nikita Popov [Thu, 29 Oct 2020 11:47:32 +0000 (12:47 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Report gone away error in one more place
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
Nikita Popov [Thu, 29 Oct 2020 10:43:17 +0000 (11:43 +0100)]
Report gone away error in one more place
Christoph M. Becker [Thu, 29 Oct 2020 11:16:41 +0000 (12:16 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
[ci skip] Fix NEWS order
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
Christoph M. Becker [Thu, 29 Oct 2020 11:15:31 +0000 (12:15 +0100)]
[ci skip] Fix NEWS order
Christoph M. Becker [Thu, 29 Oct 2020 11:04:21 +0000 (12:04 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fix #44618: Fetching may rely on uninitialized data
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
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
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.
Nikita Popov [Thu, 29 Oct 2020 09:40:10 +0000 (10:40 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Retain QUIT_SEND connection state
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
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.
Nikita Popov [Wed, 28 Oct 2020 16:15:51 +0000 (17:15 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed bug #65825
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
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
Christoph M. Becker [Wed, 28 Oct 2020 12:49:47 +0000 (13:49 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fix #79177: FFI doesn't handle well PHP exceptions within callback
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
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.
Nikita Popov [Wed, 28 Oct 2020 11:18:26 +0000 (12:18 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed bug #66528
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
Nikita Popov [Wed, 28 Oct 2020 10:58:07 +0000 (11:58 +0100)]
Fixed bug #66528
Report errors in commit, rollback and autocommit handlers.
Dmitry Stogov [Wed, 28 Oct 2020 10:51:55 +0000 (13:51 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed run-time binding of preloaded dynamically declared function
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
Dmitry Stogov [Wed, 28 Oct 2020 10:50:14 +0000 (13:50 +0300)]
Fixed run-time binding of preloaded dynamically declared function
Nikita Popov [Wed, 28 Oct 2020 10:37:54 +0000 (11:37 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Handle mysqli errors in more cases
Sync test with master
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
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.
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.
Nikita Popov [Wed, 28 Oct 2020 10:04:41 +0000 (11:04 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fix bug #79375
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
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.
Dmitry Stogov [Wed, 28 Oct 2020 09:59:42 +0000 (12:59 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Don't force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper
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
Nikita Popov [Wed, 28 Oct 2020 09:44:13 +0000 (10:44 +0100)]
Check for null dbh methods in get_gc
Methods may not be set at the point where get_gc is called. Fixes
a segfault in Laravel.
Dmitry Stogov [Wed, 28 Oct 2020 07:47:56 +0000 (10:47 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed 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
Dmitry Stogov [Tue, 27 Oct 2020 20:45:32 +0000 (23:45 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed tracing JIT support for aliasses (Zend/tests/bug75420.13.phpt and ext/standard/tests/streams/bug60106.phpt)
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)
Dmitry Stogov [Tue, 27 Oct 2020 13:42:26 +0000 (16:42 +0300)]
Fix conflict
Dmitry Stogov [Tue, 27 Oct 2020 13:36:58 +0000 (16:36 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed support for named parameters (Zend/tests/named_params/references.phpt)
Update NEWS for 8.0.0RC4
Update NEWS for PHP 8.0.0RC3
Dmitry Stogov [Tue, 27 Oct 2020 13:35:24 +0000 (16:35 +0300)]
Fixed support for named parameters (Zend/tests/named_params/references.phpt)
Gabriel Caruso [Tue, 27 Oct 2020 12:25:17 +0000 (12:25 +0000)]
Update NEWS for 8.0.0RC4
Gabriel Caruso [Tue, 27 Oct 2020 12:07:36 +0000 (12:07 +0000)]
Update NEWS for PHP 8.0.0RC3
Nikita Popov [Tue, 27 Oct 2020 10:42:18 +0000 (11:42 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Don'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.
Máté Kocsis [Tue, 27 Oct 2020 10:28:48 +0000 (11:28 +0100)]
Merge branch 'PHP-8.0'
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
Dmitry Stogov [Tue, 27 Oct 2020 09:59:53 +0000 (12:59 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed support for typed references
Dmitry Stogov [Tue, 27 Oct 2020 09:59:35 +0000 (12:59 +0300)]
Fixed support for typed references
Nikita Popov [Tue, 27 Oct 2020 09:35:54 +0000 (10:35 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Skip 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.
Alex Dowad [Wed, 14 Oct 2020 11:01:25 +0000 (13:01 +0200)]
UTF-32 conversion treats truncated characters as illegal
Alex Dowad [Sun, 6 Sep 2020 12:42:55 +0000 (14:42 +0200)]
Add identify filter for UTF-32{,BE,LE}
Alex Dowad [Wed, 14 Oct 2020 18:25:19 +0000 (20:25 +0200)]
Improve error handling for UTF-16{,BE,LE}
Catch various errors such as the first part of a surrogate pair not being
followed by a proper second part, the first part of a surrogate pair appearing
at the end of a string, the second part of a surrogate pair appearing out
of place, and so on.
Alex Dowad [Tue, 13 Oct 2020 13:17:00 +0000 (15:17 +0200)]
UTF-16 text conversion handles truncated characters as illegal
This broke one old test (Zend/tests/multibyte_encoding_003.phpt), which used
a PHP script encoded as UTF-16. The problem was that to terminate the test
script, we need the text: "\n--EXPECT--". Out of that text, the terminating
newline (0x0A byte) becomes part of the resulting test script; but a bare
0x0A byte with no 0x00 is not valid UTF-16.
Since we now treat truncated UTF-16 characters as erroneous, an extra '?' is
appended to the output as an 'illegal character' marker.
Really, if we are running PHP scripts which are treated as encoded in UTF-16
or some other arbitrary text encoding (not ASCII), and the script is not
actually a valid string in that encoding, inserting '?' characters into the
code which the PHP interpreter runs is a bad thing to do. In such cases, the
script shouldn't be treated as UTF-16 (or whatever) at all.
I wonder if mbstring's encoding detection is being used in 'non-strict' mode?
Dmitry Stogov [Tue, 27 Oct 2020 07:31:09 +0000 (10:31 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed 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
Dmitry Stogov [Mon, 26 Oct 2020 22:20:46 +0000 (01:20 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed memory leak
Dmitry Stogov [Mon, 26 Oct 2020 22:20:22 +0000 (01:20 +0300)]
Fixed memory leak
Sammy Kaye Powers [Mon, 26 Oct 2020 22:15:45 +0000 (15:15 -0700)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Add missing observer tests
Sammy Kaye Powers [Fri, 23 Oct 2020 20:38:42 +0000 (13:38 -0700)]
Add missing observer tests
Closes GH-6378
Dmitry Stogov [Mon, 26 Oct 2020 18:49:14 +0000 (21:49 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed register allocation
Fixed MAY_BE_INDIRECT inference.
Dmitry Stogov [Mon, 26 Oct 2020 18:48:47 +0000 (21:48 +0300)]
Fixed register allocation
Dmitry Stogov [Mon, 26 Oct 2020 18:48:13 +0000 (21:48 +0300)]
Fixed MAY_BE_INDIRECT inference.
Dmitry Stogov [Mon, 26 Oct 2020 16:05:23 +0000 (19:05 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Better JIT support for aliases
Dmitry Stogov [Mon, 26 Oct 2020 16:05:08 +0000 (19:05 +0300)]
Better JIT support for aliases
Nikita Popov [Mon, 26 Oct 2020 16:01:25 +0000 (17:01 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fix 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.
Nikita Popov [Mon, 26 Oct 2020 15:54:58 +0000 (16:54 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Deny 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.
Nikita Popov [Mon, 26 Oct 2020 15:52:22 +0000 (16:52 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Deny cloning of fileinfo objects
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
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
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.
Nikita Popov [Mon, 26 Oct 2020 15:25:31 +0000 (16:25 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Consistent 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.
Christoph M. Becker [Mon, 26 Oct 2020 14:42:32 +0000 (15:42 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Revert "Fix out-of-bounds write"
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"
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"
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.
Nikita Popov [Mon, 26 Oct 2020 13:31:55 +0000 (14:31 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Re-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.
Dmitry Stogov [Mon, 26 Oct 2020 12:57:23 +0000 (15:57 +0300)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1.phpt
Dmitry Stogov [Mon, 26 Oct 2020 12:56:37 +0000 (15:56 +0300)]
Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1.phpt
Christoph M. Becker [Mon, 26 Oct 2020 12:15:33 +0000 (13:15 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Fix #80268: loadHTML() truncates at NUL bytes
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
Nikita Popov [Mon, 26 Oct 2020 12:11:00 +0000 (13:11 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Don'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.
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
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.
Nikita Popov [Mon, 26 Oct 2020 11:41:19 +0000 (12:41 +0100)]
Merge branch 'PHP-8.0'
* PHP-8.0:
Declare may_retry_reparse_point on windows only
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