Commit graph

2187 commits

Author SHA1 Message Date
Ilija Tovilo
f390425db3
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix flaky connection count in mysqli test
2025-03-13 16:46:03 +01:00
Ilija Tovilo
00ebd2d7f2
Fix flaky connection count in mysqli test
Use connection ID instead of count to check whether we're using a
persistent connection. This allows the test to be run in parallel with
the other tests, but also protects against the possibility that some
other service connects to the mysql server.

Closes GH-18040
2025-03-13 16:40:33 +01:00
Calvin Buckley
1afbaaa804
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Skip mysqli/tests/bug73462 on PPC CI (#17971)
2025-03-05 10:18:41 -04:00
Calvin Buckley
dc6586dd9d
Skip mysqli/tests/bug73462 on PPC CI (#17971)
* Skip this test on PPC CI

Seems to be unfortunately flaky with persistent connections.

* use spaces in phpt file
2025-03-05 10:17:39 -04:00
Jakub Zelenka
5d632230ba
Merge branch 'PHP-8.1' into PHP-8.2 2025-01-19 20:37:53 +01:00
Jakub Zelenka
235d1b14a3
Fix GH-17499: mysqli flaky test: ghsa-h35g-vwh6-m678-stmt-row-string 2025-01-19 20:36:12 +01:00
Jakub Zelenka
d18768e231
Merge branch 'PHP-8.1' into PHP-8.2 2024-12-09 23:36:36 +01:00
Jakub Zelenka
39c292b1eb
Use empheral port for mysqli fake server tests 2024-12-09 23:34:50 +01:00
Niels Dossche
1a6f8a0b79
Fix some MariaDB test failures
Allow other wording too such that these mysqli tests pass.

Closes GH-17004.
2024-12-02 19:20:54 +01:00
Jakub Zelenka
173175badd
Merge branch 'PHP-8.1' into PHP-8.2 2024-11-24 23:49:04 +01:00
Jakub Zelenka
eb951b3d11
Increase MySQLi fake server read timeout for ASAN job 2024-11-24 23:48:27 +01:00
Jakub Zelenka
06082671f4
Merge branch 'PHP-8.1' into PHP-8.2 2024-11-24 20:14:29 +01:00
Jakub Zelenka
51f5539914
Change port for mysqli fake server auth message test 2024-11-24 20:13:47 +01:00
Jakub Zelenka
c70b97d8eb
Make MySQLnd protocol stmt test work on 32bit
Closes GH-16869.
2024-11-20 13:52:53 +01:00
Jakub Zelenka
a21e48a93a
Make MySQLnd protocol stmt test work on 32bit 2024-11-20 11:06:43 +01:00
Jakub Zelenka
c595455300
Fix GHSA-h35g-vwh6-m678: Mysqlnd - various heap buffer over-reads
This fixes issues causing buffer over-read that leak heap content:
- RESP packet field default left over for COM_LIST
- RESP packet upsert filename
- OK packet message
- RESP packet for stmt row data
  - ps_fetch_from_1_to_8_bytes
  - ps_fetch_float
  - ps_fetch_double
  - ps_fetch_time
  - ps_fetch_date
  - ps_fetch_datetime
  - ps_fetch_string
  - ps_fetch_bit
- RESP packet for query row data (just possible overflow on 32bit)

It also adds various protocol tests using a new fake server.
2024-11-20 11:06:26 +01:00
Jakub Zelenka
2f5aa9f9d1
Fix GHSA-h35g-vwh6-m678: Mysqlnd - various heap buffer over-reads
This fixes issues causing buffer over-read that leak heap content:
- RESP packet field default left over for COM_LIST
- RESP packet upsert filename
- OK packet message
- RESP packet for stmt row data
  - ps_fetch_from_1_to_8_bytes
  - ps_fetch_float
  - ps_fetch_double
  - ps_fetch_time
  - ps_fetch_date
  - ps_fetch_datetime
  - ps_fetch_string
  - ps_fetch_bit
- RESP packet for query row data (just possible overflow on 32bit)

It also adds various protocol tests using a new fake server.
2024-11-17 19:30:13 +01:00
Christoph M. Becker
b1211c1e4a
Fix GH-15432: Heap corruption when querying a vector
Since the mysqlnd result set is arena allocated, we must not simply
free it, but rather call the appropriate `free_result` method.

Co-authored-by: Kamil Tekiela <tekiela246@gmail.com>
2024-08-20 15:43:21 +02:00
Kamil Tekiela
a59868aef8
Clear mysql error in fetch_into
Closes GH-14256
2024-05-17 13:08:42 +02:00
Jakub Zelenka
3b93f13199
Revert "ext/mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT"
This reverts commit 5035b85090.

This broke Doctrine DBAL tests - more discussion in GH-13618.
2024-04-12 10:56:09 +01:00
Appla
5035b85090
ext/mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT
Closes GH-13618.
2024-04-10 13:33:04 +02:00
Saki Takamachi
23eb6a00e2
Changed the test expected value of mysqli::info to %s (#13723)
Closes #13723
Fixes #13628
2024-03-16 00:14:18 +09:00
Niels Dossche
0d21a8dcb5 Fix GH-12107: When running a stored procedure (that returns a result set) twice, PHP crashes
Closes GH-12771.
2024-01-19 23:34:12 +01:00
Kamil Tekiela
6d039d282a
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix failing test on nightly
2023-08-17 18:45:49 +01:00
Kamil Tekiela
ffd398b4fe
Fix failing test on nightly 2023-08-17 18:45:10 +01:00
Kamil Tekiela
06bda99280
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix implicit/explicit port in mysqlnd
2023-08-16 20:33:52 +01:00
Kamil Tekiela
c1103a9772
Fix implicit/explicit port in mysqlnd 2023-08-16 18:59:07 +01:00
Kamil Tekiela
4db701c049
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix MySQL Statement has a empty query result when the response field has changed, also Segmentation fault
2023-08-04 22:31:18 +01:00
Yurun
ca5d48213a
Fix MySQL Statement has a empty query result when the response field has changed, also Segmentation fault
Closes GH-11551.
2023-08-04 22:25:01 +01:00
Niels Dossche
77417f81cb Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix missing link variable in test
2023-08-03 21:12:04 +02:00
Niels Dossche
162bd2a58a Fix missing link variable in test 2023-08-03 21:11:55 +02:00
Niels Dossche
75441d71d8 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix GH-10964: Improve `man` page about the built-in server
  Fix GH-11438: mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters
2023-08-03 20:32:30 +02:00
Niels Dossche
509906b2a5 Fix GH-11438: mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters
https://dev.mysql.com/doc/dev/mysql-server/latest/page_caching_sha2_authentication_exchanges.html
tells us that the nonce used in this authentication method is 20 bytes
long. However, we might receive additional scramble data in
php_mysqlnd_greet_read not used in this method.
On my test setup, I received 21 bytes (20 bytes + '\0'). This resulted
in the xor computation to incorrectly include the NUL byte. Every
password of at least 20 characters therefore failed to authenticate
using this method.

Looking at mysql-server source code also seems to reveal that it always
uses a fixed number of scramble bytes [1].

[1] ea7087d885/sql/auth/sha2_password.cc (L1078-L1079)

Closes GH-11445.

Co-authored-by: Kamil Tekiela <tekiela246@gmail.com>
2023-08-03 20:28:11 +02:00
Ilija Tovilo
72fc8b51a4
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix mysql tests with non-standard server port
2023-04-20 08:45:52 +02:00
Michael Voříšek
0ab51a9561
Fix mysql tests with non-standard server port
Closes GH-9744
2023-04-20 08:45:14 +02:00
Ilija Tovilo
9b15537e9a
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Unparallelize IO heavy tests
2023-03-27 16:34:11 +02:00
Ilija Tovilo
e1ec67acd6
Unparallelize IO heavy tests
Alternative to GH-10892. This is somewhat unfortunate since these are also the
slow tests. I'm also not sure if this actually helps.

Closes GH-10953
2023-03-27 16:33:36 +02:00
Daniel Black
b77edf82ac
Fix mysqli test wrt. MariaDB
The test results under MariaDB, except they report "MariaDB" instead
of MySQL.

Closes GH-10029.
2022-12-09 16:09:23 +01:00
Christoph M. Becker
a76bbd39b6
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  ext/mysqli tests "using password" optional in error messages (part 2)
2022-12-08 14:24:01 +01:00
Daniel Black
c21a5920ac
ext/mysqli tests "using password" optional in error messages (part 2)
Like GH-10035 for ext/mysqli/tests/mysqli_connect.phpt test.

Closes GH-10064.
2022-12-08 14:23:33 +01:00
Christoph M. Becker
0ac9e8e4e2
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  ext/mysqli tests "using password" optional in error messages
2022-12-05 13:12:54 +01:00
Daniel Black
b6b4a628a5
ext/mysqli tests "using password" optional in error messages
Closes GH-10035.
2022-12-05 13:12:23 +01:00
Kamil Tekiela
646b8f6b5c
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Add NEWS entry for #9841
  Add a temporary fix for insufficient buffer size in mysqlnd (#9835)
  mysqli_query throws warning despite using silenced error mode (#9842)
2022-10-27 18:34:14 +01:00
Kamil Tekiela
ec1f58c871
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Add NEWS entry for #9841
  Add a temporary fix for insufficient buffer size in mysqlnd (#9835)
  mysqli_query throws warning despite using silenced error mode (#9842)
2022-10-27 18:31:38 +01:00
Kamil Tekiela
5b60370906
mysqli_query throws warning despite using silenced error mode (#9842) 2022-10-27 18:24:28 +01:00
Christoph M. Becker
62d393b1ed
Remove support for libmysql-client from mysqli test suite
Since mysqli can no longer be built against libmysql-client, there is
no longer the need to distinguish.

While we're at it, we also drop the superfluous is_object() checks.

Closes GH-9652.
2022-10-06 12:09:14 +02:00
Christoph M. Becker
a5003bb4f4
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  gh9590.phpt requires ext/posix
2022-10-01 14:34:59 +02:00
Christoph M. Becker
48ae3a0e3f
gh9590.phpt requires ext/posix 2022-10-01 14:34:24 +02:00
Christoph M. Becker
c5f53c4ef4
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Use --EXTENSIONS-- section for newly added tests
2022-10-01 14:09:26 +02:00
Christoph M. Becker
47c79a97f5
Use --EXTENSIONS-- section for newly added tests
As of PHP 8.1.0, the `--EXTENSIONS-- section is properly supported, and
CIs may make use of that (our AppVeyor CI does).  Thus it is important
to list required extensions there, since otherwise they may not be
loaded, causing the test to be skipped, or worse, to be borked.
2022-10-01 14:08:59 +02:00