1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 15:08:16 +02:00
Commit Graph

62899 Commits

Author SHA1 Message Date
Stanislav Malyshev dedaf40d21 Merge branch 'PHP-8.1' into PHP-8.2 2022-10-23 18:49:30 -06:00
Stanislav Malyshev 33e10cb1e0 Merge branch 'PHP-8.0' into PHP-8.1 2022-10-23 18:49:26 -06:00
Stanislav Malyshev 1d83a407d1 Merge branch 'PHP-7.4' into PHP-8.0 2022-10-23 18:49:21 -06:00
Christoph M. Becker d50532be91 Fix #81739: OOB read due to insufficient validation in imageloadfont()
If we swap the byte order of the relevant header bytes, we need to make
sure again that the following multiplication does not overflow.
2022-10-23 18:41:48 -06:00
Jakub Zelenka b732d80329 Fix bug GH-9779: stream_copy_to_stream fail when dest in append mode 2022-10-23 12:40:22 +01:00
Jakub Zelenka 3e2184f795 Fix OpenSSL conflicting merge for compilation issue with old digests 2022-10-23 00:39:42 +01:00
Bob Weinand 5e9654be03 Fixed missing run_time_cache for preloaded arena allocated internal functions
This effectively affected all preloaded enums, leading them to possibly share a run_time_cache__ptr slot with unrelated functions. (Given that these were not set again.)
This bugfix is not accompanied by a test, due to how hard to trigger it was and getting a crash also depends a lot on the precise alignment of whether a cache entry accidentally overlapping has been used etc.
2022-10-22 22:07:41 +00:00
Jakub Zelenka cb3d5a772d Merge branch 'PHP-8.1' into PHP-8.2 2022-10-22 22:14:27 +01:00
Jakub Zelenka ec844ccc3f Merge branch 'PHP-8.0' into PHP-8.1 2022-10-22 22:12:05 +01:00
Jakub Zelenka fa1b6ab5db Fix GH-8430: OpenSSL compiled with old disgests does not build
Specifically no-md2, no-md4 or no-rmd160 were not supported
2022-10-22 22:11:05 +01:00
Jakub Zelenka 1ef65c1cf0 Clean up OpenSSL engine list when OpenSSL 1.0.2 used
Attempt to fix GH-8620.
2022-10-22 11:20:00 +01:00
Stanislav Malyshev acbd5c1164 Merge branch 'PHP-8.1' into PHP-8.2 2022-10-21 00:05:35 -06:00
Stanislav Malyshev 27aed8f345 Merge branch 'PHP-8.0' into PHP-8.1 2022-10-21 00:05:30 -06:00
Stanislav Malyshev beff4278a4 Merge branch 'PHP-7.4' into PHP-8.0 2022-10-21 00:04:43 -06:00
Stanislav Malyshev 248f647724 Fix bug #81738 (buffer overflow in hash_update() on long parameter) 2022-10-20 23:57:35 -06:00
Kévin Dunglas 7acb7703e2 opcache: add FrankenPHP to the allow list 2022-10-20 15:08:03 +02:00
Ilija Tovilo 182d297891 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Mark frequently failing hrtime test as XFAIL
2022-10-20 11:00:33 +02:00
Ilija Tovilo 2f225b3008 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  [skip ci] Mark frequently failing hrtime test as XFAIL
2022-10-20 11:00:21 +02:00
Ilija Tovilo 4071e18620 [skip ci] Mark frequently failing hrtime test as XFAIL 2022-10-20 10:59:07 +02:00
Ilija Tovilo 75c06e869c [skip ci] Mark frequently failing OCI test as XFAIL 2022-10-20 10:57:13 +02:00
Ilija Tovilo d0190532f3 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix failing date test
2022-10-20 10:50:03 +02:00
Ilija Tovilo 4e8a6554cb Fix failing date test
INCLUDE_END_DATE has only been introduced in PHP 8.2.
2022-10-20 10:48:57 +02:00
Derick Rethans 0a1a9997c7 Merge branch 'PHP-8.1' into PHP-8.2 2022-10-19 16:03:02 +01:00
Derick Rethans df085f4678 Merge branch 'PHP-8.0' into PHP-8.1 2022-10-19 16:02:57 +01:00
Derick Rethans 011b7f9840 Test for bug #78055 (DatePeriod's getRecurrences and ->recurrences don't match) 2022-10-19 16:02:49 +01:00
Christoph M. Becker f5aaa8f187 Fix GH-9372: HY010 when binding overlong parameter
If `SQLPutData()` *fails*, we should not call `SQLParamData()` again,
because that yields the confusing `HY010` (Function sequence error).
Instead we properly handle `SQLPutData()` errors.

For the given case (paramter length > column length), some drivers let
`SQLPutData()` fail, while others do not.  Either behavior seems to
conform to the ODBC specification.  Anyhow, we do not want to silently
truncate the given parameter, since that would break the behavior for
drivers which do not fail, but still don't simply truncate the given
parameter.  So it is finally up to userland to avoid passing overlong
parameters – with this patch they at least get useful information about
the actual issue.

Closes GH-9541.
2022-10-19 11:37:05 +02:00
Derick Rethans 2e6b317fe3 Merge branch 'PHP-8.1' into PHP-8.2 2022-10-17 18:22:42 +01:00
Derick Rethans 25744dd73c Merge branch 'PHP-8.0' into PHP-8.1 2022-10-17 18:22:36 +01:00
Derick Rethans 7b48053293 Fixed GH-9763: DateTimeZone ctr mishandles input and adds null byte if the argument is an offset larger than 100*60 minutes 2022-10-17 17:08:44 +01:00
Dmitry Stogov eecbb60db6 Fix memory leak
Fixes oss-fuzz #52479
2022-10-17 15:08:21 +03:00
Dmitry Stogov d282345e11 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Reset JIT for dynamic functions on opcache restrart
2022-10-17 11:27:12 +03:00
Dmitry Stogov 61e563ca40 Reset JIT for dynamic functions on opcache restrart 2022-10-17 11:26:30 +03:00
Dmitry Stogov 5e10aa4e5f Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Discard disasm symbols on opcache restart
2022-10-17 11:24:08 +03:00
Dmitry Stogov 3e076ddf06 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Discard disasm symbols on opcache restart
2022-10-17 11:24:00 +03:00
Dmitry Stogov cefb228e15 Discard disasm symbols on opcache restart 2022-10-17 11:22:59 +03:00
Christoph M. Becker aba82c74d9 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix GH-9720: Null pointer dereference while serializing the response
2022-10-13 16:08:34 +02:00
Christoph M. Becker 24c297086d Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix GH-9720: Null pointer dereference while serializing the response
2022-10-13 16:00:36 +02:00
Christoph M. Becker e440e37fa8 Fix GH-9720: Null pointer dereference while serializing the response
When traversing the result array, we need to cater to `param_name`
possibly being `NULL`.  Prior to PHP 7.0.0, this was implicitly done
because `param_name` was of type `char*`.

Closes GH-9739.
2022-10-13 15:56:08 +02:00
Christoph M. Becker 3193c037d2 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix potential heap corruption due to alignment mismatch
2022-10-13 11:48:07 +02:00
Christoph M. Becker 7e14d2466a Fix potential heap corruption due to alignment mismatch
The fix for bug 63327[1] changed the extra size of mysqlnd allocations
from `sizeof(size_t)` to the properly aligned values; however, the
allocation in `_mysqlnd_pestrdup()` has apparently been overlooked,
which (currently) causes detectable heap corruption when running
mysqli_get_client_stats.phpt on 32bit Windows versions.

[1] <https://github.com/php/php-src/commit/338a47bb856872f9ab0db94e867333d73279ca85>

Closes GH-9724.
2022-10-13 11:47:24 +02:00
Christoph M. Becker 3b5a9da2dc Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Updated to version 2022.5 (2022e)
  Updated to version 2022.5 (2022e)
2022-10-13 11:43:33 +02:00
Derick Rethans 577b904fdc Updated to version 2022.5 (2022e) 2022-10-12 09:37:30 +01:00
Derick Rethans 24963be8ef Updated to version 2022.5 (2022e) 2022-10-12 09:37:28 +01:00
Dmitry Stogov 46fcf33c7b Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix crashes after opcache restart
2022-10-11 14:23:59 +03:00
Dmitry Stogov c5364b851a Fix crashes after opcache restart 2022-10-11 14:23:12 +03:00
Bob Weinand 9be00e3935 Ensure driver specific PDO methods have a proper run_time_cache 2022-10-11 00:53:19 +02:00
Alex Dowad a116aaebd9 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Add regression test for problem with mb_encode_mimeheader reported as GH-9683
  In legacy text conversion filters, reset filter state in 'flush' function
2022-10-10 20:48:10 +09:00
Alex Dowad faa5425b0f Add regression test for problem with mb_encode_mimeheader reported as GH-9683 2022-10-10 20:46:12 +09:00
Alex Dowad 5812b4fe54 In legacy text conversion filters, reset filter state in 'flush' function
Up until now, I believed that mbstring had been designed such
that (legacy) text conversion filter objects should not be
re-used after the 'flush' function is called to complete a
text conversion operation.

However, it turns out that the implementation of
_php_mb_encoding_handler_ex DID re-use filter objects
after flush. That means that functions which were based on
_php_mb_encoding_handler_ex, including mb_parse_str and
php_mb_post_handler, would break in some cases; state left
over from converting one substring (perhaps a variable name)
would affect the results of converting another substring
(perhaps the value of the same variable), and could cause
extraneous characters to get inserted into the output.

All this code should be deleted soon, but fixing it helps me
to avoid spurious failures when fuzzing the new/old code to
look for differences in behavior.

(This bug fix commit was originally applied to PHP-8.2 when fuzzing
the new mbstring text conversion code to check for differences with
the old code. Later, Kentaro Ohkouchi kindly reported a problem with
mb_encode_mimeheader under PHP 8.1 which was caused by the same issue.
Hence, this commit was backported to PHP-8.1.)

Fixes GH-9683.
2022-10-10 20:46:12 +09:00
Christoph M. Becker 6e0505bf27 Fix GH-9589: dl() segfaults when module is already loaded
As of PHP 8.2.0, `zend_module_entry` structures are no longer copied,
so when a module is permanently loaded, and users try to dynamically
load that module again, the structure is corrupted[1], causing a
segfault on shutdown.

We catch that by checking whether any dynamically loaded module is
already loaded, and bailing out in that case without modifying the
`zend_module_entry` structure.

[1] <https://github.com/php/php-src/issues/9589#issuecomment-1263718701>

Closes GH-9689.
2022-10-10 13:36:57 +02:00