1
0
mirror of https://github.com/php/php-src.git synced 2026-04-17 04:51:03 +02:00
Commit Graph

57223 Commits

Author SHA1 Message Date
Christoph M. Becker
3d11a0feb0 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix #44618: Fetching may rely on uninitialized data
2020-10-29 12:04:21 +01:00
Christoph M. Becker
9838eff68b Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #44618: Fetching may rely on uninitialized data
2020-10-29 12:03:11 +01:00
Christoph M. Becker
133ac0151b Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #44618: Fetching may rely on uninitialized data
2020-10-29 12:00:57 +01:00
Christoph M. Becker
c21e901ba7 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.
2020-10-29 11:59:12 +01:00
Nikita Popov
5e695343ec Merge branch 'PHP-8.0'
* PHP-8.0:
  Retain QUIT_SEND connection state
2020-10-29 10:40:10 +01:00
Nikita Popov
d784c65cca Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Retain QUIT_SEND connection state
2020-10-29 10:39:58 +01:00
Nikita Popov
24537a73c0 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.
2020-10-29 10:36:03 +01:00
Nikita Popov
f3c9597bc2 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed bug #65825
2020-10-28 17:15:51 +01:00
Nikita Popov
246b8b20b2 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fixed bug #65825
2020-10-28 17:15:42 +01:00
Nikita Popov
a66d73db4b 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
2020-10-28 17:15:27 +01:00
Christoph M. Becker
92381864a5 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix #79177: FFI doesn't handle well PHP exceptions within callback
2020-10-28 13:49:47 +01:00
Christoph M. Becker
d07f6753a0 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #79177: FFI doesn't handle well PHP exceptions within callback
2020-10-28 13:49:23 +01:00
Christoph M. Becker
f547412cba 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.
2020-10-28 13:34:56 +01:00
Nikita Popov
bd555b6cca Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed bug #66528
2020-10-28 12:18:26 +01:00
Nikita Popov
39be0df2ed Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fixed bug #66528
2020-10-28 12:18:17 +01:00
Nikita Popov
68dcaa29d8 Fixed bug #66528
Report errors in commit, rollback and autocommit handlers.
2020-10-28 12:18:02 +01:00
Nikita Popov
67598afbdb Merge branch 'PHP-8.0'
* PHP-8.0:
  Handle mysqli errors in more cases
  Sync test with master
2020-10-28 11:37:54 +01:00
Nikita Popov
d928c58281 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Handle mysqli errors in more cases
  Sync test with master
2020-10-28 11:37:37 +01:00
Dharman
990bb34891 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.
2020-10-28 11:33:50 +01:00
Nikita Popov
fe55fe1f54 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.
2020-10-28 11:30:22 +01:00
Nikita Popov
dc03e621b8 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix bug #79375
2020-10-28 11:04:41 +01:00
Nikita Popov
793bf12f8c Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix bug #79375
2020-10-28 11:04:32 +01:00
Dharman
b03776adb5 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.
2020-10-28 11:01:47 +01:00
Dmitry Stogov
94fd97eea3 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
2020-10-28 12:59:42 +03:00
Dmitry Stogov
2693f799be Don't force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper 2020-10-28 12:59:00 +03:00
Nikita Popov
ab0ec3f24a 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.
2020-10-28 10:44:13 +01:00
Dmitry Stogov
a49200a031 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed memory leak in Zend/tests/bug78999.phpt
2020-10-28 10:47:56 +03:00
Dmitry Stogov
47a56208f0 Fixed memory leak in Zend/tests/bug78999.phpt 2020-10-28 10:47:23 +03:00
Dmitry Stogov
a73b2ddc30 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)
2020-10-27 23:45:32 +03:00
Dmitry Stogov
e6b51ccc58 Fixed tracing JIT support for aliasses (Zend/tests/bug75420.13.phpt and ext/standard/tests/streams/bug60106.phpt) 2020-10-27 23:44:29 +03:00
Dmitry Stogov
1f1dbd7f48 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
2020-10-27 16:36:58 +03:00
Dmitry Stogov
43e493884c Fixed support for named parameters (Zend/tests/named_params/references.phpt) 2020-10-27 16:35:24 +03:00
Nikita Popov
5b46bdef92 Merge branch 'PHP-8.0'
* PHP-8.0:
  Don't throw for out of bounds offsets in strspn()
2020-10-27 11:42:18 +01:00
Nikita Popov
d776d25a8e 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.
2020-10-27 11:42:01 +01:00
Máté Kocsis
543bcd88aa Merge branch 'PHP-8.0' 2020-10-27 11:28:48 +01:00
Máté Kocsis
76e4bf3068 Parameter type and name fixes in ext/standard
Closes GH-6382
2020-10-27 11:27:25 +01:00
Dmitry Stogov
b961b7f0b5 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed support for typed references
2020-10-27 12:59:53 +03:00
Dmitry Stogov
45e2b9a7dd Fixed support for typed references 2020-10-27 12:59:35 +03:00
Nikita Popov
2e097098f4 Merge branch 'PHP-8.0'
* PHP-8.0:
  Skip bug46024.phpt under asan
2020-10-27 10:35:54 +01:00
Nikita Popov
682357c5b4 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.
2020-10-27 10:35:12 +01:00
Alex Dowad
e26234a044 UTF-32 conversion treats truncated characters as illegal 2020-10-27 10:19:01 +02:00
Alex Dowad
7047e5d2c4 Add identify filter for UTF-32{,BE,LE} 2020-10-27 10:19:01 +02:00
Alex Dowad
d8895cd054 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.
2020-10-27 10:19:01 +02:00
Alex Dowad
d9ddeb6e85 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?
2020-10-27 10:19:00 +02:00
Dmitry Stogov
9bfb158872 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed tracing JIT for tests/classes/unset_properties.phpt
2020-10-27 10:31:09 +03:00
Dmitry Stogov
b8a6717da6 Fixed tracing JIT for tests/classes/unset_properties.phpt 2020-10-27 10:30:38 +03:00
Dmitry Stogov
990bac4efc Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed memory leak
2020-10-27 01:20:46 +03:00
Dmitry Stogov
a17cec446a Fixed memory leak 2020-10-27 01:20:22 +03:00
Sammy Kaye Powers
6cd0ec70b5 Merge branch 'PHP-8.0'
* PHP-8.0:
  Add missing observer tests
2020-10-26 15:15:45 -07:00
Sammy Kaye Powers
4a6932c076 Add missing observer tests
Closes GH-6378
2020-10-26 15:15:17 -07:00