#
c9eafc19 |
| 25-Oct-2024 |
Christoph M. Becker |
Fix GH-16450: PDO_ODBC can inject garbage into field values A previous bug fix[1] relied on ODBC drivers to properly count down the `StrLen_or_IndPtr` argument for consecutive calls to `
Fix GH-16450: PDO_ODBC can inject garbage into field values A previous bug fix[1] relied on ODBC drivers to properly count down the `StrLen_or_IndPtr` argument for consecutive calls to `SQLGetData()`. Apparently, not all drivers handle this correctly, so we cannot assert they do. Instead we fall back to the old behavior for drivers which would violate the assertion. A test against SQLServer (which we currently use in CI) would not make sense, since the respective drivers do not exhibit that behavior. Instead we target the regression test especially to a MS Access database. Since there is apparently no way to easily create an MS Access database programmatically, we commit a minimal empty DB which is used for the regression test, and could also be used by other test cases. [1] <bccca0b53aa60a62e2988c750fc73c02d109e642> Closes GH-16587.
show more ...
|
#
54a40f3b |
| 10-Oct-2024 |
Arnaud Le Blanc |
Add ReflectionProperty::isLazy() Closes GH-16342
|
#
3d3b22dd |
| 29-Oct-2024 |
Arnaud Le Blanc |
Fix assertion failure in zend_std_read_property We asserted that Z_PROP_FLAG_P(retval) was exactly IS_PROP_UNINIT, but this is a bit field and it may contain irrelevant bits. For instanc
Fix assertion failure in zend_std_read_property We asserted that Z_PROP_FLAG_P(retval) was exactly IS_PROP_UNINIT, but this is a bit field and it may contain irrelevant bits. For instance it may contain IS_PROP_REINITABLE during clone, or IS_PROP_LAZY if the object is lazy. Fixes GH-16615 Closes GH-16639
show more ...
|
#
eeec0939 |
| 29-Jun-2024 |
David Carlier |
Fix GH-14687 segfault on debugging a freed SplObjectIterator instance. close GH-14711
|
#
9d8983c0 |
| 25-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16595: Another UAF in DOM -> cloneNode We need to perform all sanity checks before doing any modification. I don't have a reliable and easy test for this on 8.2, but I have one
Fix GH-16595: Another UAF in DOM -> cloneNode We need to perform all sanity checks before doing any modification. I don't have a reliable and easy test for this on 8.2, but I have one for 8.4. Closes GH-16598.
show more ...
|
#
d89dd28d |
| 25-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16593: Assertion failure in DOM->replaceChild This is already forbidden by libxml, but this condition isn't properly checked; so the return value and lack of error makes it seem l
Fix GH-16593: Assertion failure in DOM->replaceChild This is already forbidden by libxml, but this condition isn't properly checked; so the return value and lack of error makes it seem like it worked while it actually didn't. Furthermore, this can break assumptions and assertions later on. Closes GH-16596.
show more ...
|
#
947e319b |
| 25-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16594: Assertion failure in DOM -> before The invalid parent condition can actually happen because PHP's DOM is allows to get children of e.g. attributes; something normally not
Fix GH-16594: Assertion failure in DOM -> before The invalid parent condition can actually happen because PHP's DOM is allows to get children of e.g. attributes; something normally not possible. Closes GH-16597.
show more ...
|
#
38e1b0ac |
| 24-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16572: Incorrect result with reflection in low-trigger JIT When a recursive call happens with invalid arguments, the maximum valid arguments are computed and stored in `num_args`,
Fix GH-16572: Incorrect result with reflection in low-trigger JIT When a recursive call happens with invalid arguments, the maximum valid arguments are computed and stored in `num_args`, but the RECV entry block we jump to is `call_num_args` instead. This can skip argument validation checks. Fix this by using `num_args` instead. Closes GH-16575.
show more ...
|
#
757781a1 |
| 25-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16577: EG(strtod_state).freelist leaks with opcache.preload This happens because on ZTS we execute `executor_globals_ctor` which reset the `freelist` and `p5s` pointers, while on
Fix GH-16577: EG(strtod_state).freelist leaks with opcache.preload This happens because on ZTS we execute `executor_globals_ctor` which reset the `freelist` and `p5s` pointers, while on NTS we don't. On NTS we can reuse the caches but on ZTS we can't, the easiest fix is to call `zend_shutdown_strtod` when preloading is shut down. This regressed in GH-13974 and therefore only exists in PHP 8.4 and higher. Closes GH-16602.
show more ...
|
#
8f60309a |
| 26-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16589: UAF in SplDoublyLinked->serialize() Closes GH-16611.
|
#
992ac1c2 |
| 26-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16591: Assertion error in shm_put_var Closes GH-16610. Suggested-by: "Christoph M. Becker" <cmbecker69@gmx.de>
|
#
a19029fc |
| 17-Oct-2024 |
Gina Peter Banyard |
Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor) Closes GH-16480 Closes GH-16604
|
#
144d2ee2 |
| 25-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16588: UAF in Observer->serialize Closes GH-16600.
|
#
e9283c08 |
| 24-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16574: Incorrect error "undefined method" messages The `get_method` object handler may change the object pointer. SPL does this in its iterator implementations. This causes the er
Fix GH-16574: Incorrect error "undefined method" messages The `get_method` object handler may change the object pointer. SPL does this in its iterator implementations. This causes the error message to change to another class which is confusing to the user. JIT handles this correctly. This patch aligns behaviour with JIT. Closes GH-16576.
show more ...
|
#
e0a0e216 |
| 12-Oct-2024 |
David Carlier |
ext/gmp: gmp_pow fix FPE with large values. even without sanitizers, it is reproducible but with the following ``` <?php $g = gmp_init(256); var_dump(gmp_pow($g, PHP_INT
ext/gmp: gmp_pow fix FPE with large values. even without sanitizers, it is reproducible but with the following ``` <?php $g = gmp_init(256); var_dump(gmp_pow($g, PHP_INT_MAX)); ``` we get this ``` AddressSanitizer:DEADLYSIGNAL ================================================================= ==286922==ERROR: AddressSanitizer: FPE on unknown address 0x03e8000460ca (pc 0x7faf6c69de5c bp 0x400000000000004 sp 0x7ffe9843c740 T0) #0 0x7faf6c69de5c in __pthread_kill_implementation nptl/pthread_kill.c:44 #1 0x7faf6c649c81 in __GI_raise ../sysdeps/posix/raise.c:26 #2 0x7faf6db9386c in __gmp_exception (/lib/x86_64-linux-gnu/libgmp.so.10+0xd86c) (BuildId: 1af68a49fe041a5bb48a2915c3d47541f713bb38) #3 0x7faf6db938d3 in __gmp_overflow_in_mpz (/lib/x86_64-linux-gnu/libgmp.so.10+0xd8d3) (BuildId: 1af68a49fe041a5bb48a2915c3d47541f713bb38) #4 0x7faf6dbac95c in __gmpz_realloc (/lib/x86_64-linux-gnu/libgmp.so.10+0x2695c) (BuildId: 1af68a49fe041a5bb48a2915c3d47541f713bb38) #5 0x7faf6dba9038 in __gmpz_n_pow_ui (/lib/x86_64-linux-gnu/libgmp.so.10+0x23038) (BuildId: 1af68a49fe041a5bb48a2915c3d47541f713bb38) #6 0x5565ae1ccd9f in zif_gmp_pow /home/dcarlier/Contribs/php-src/ext/gmp/gmp.c:1286 #7 0x5565aee96ea9 in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER /home/dcarlier/Contribs/php-src/Zend/zend_vm_execute.h:1312 #8 0x5565af144320 in execute_ex /home/dcarlier/Contribs/php-src/Zend/zend_vm_execute.h:56075 #9 0x5565af160f07 in zend_execute /home/dcarlier/Contribs/php-src/Zend/zend_vm_execute.h:60439 #10 0x5565aed6fafe in zend_execute_scripts /home/dcarlier/Contribs/php-src/Zend/zend.c:1842 #11 0x5565aeae70a8 in php_execute_script /home/dcarlier/Contribs/php-src/main/main.c:2578 #12 0x5565af532f4e in do_cli /home/dcarlier/Contribs/php-src/sapi/cli/php_cli.c:964 #13 0x5565af535877 in main /home/dcarlier/Contribs/php-src/sapi/cli/php_cli.c:1334 #14 0x7faf6c633d67 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #15 0x7faf6c633e24 in __libc_start_main_impl ../csu/libc-start.c:360 #16 0x5565adc04040 in _start (/home/dcarlier/Contribs/php-src/sapi/cli/php+0x2604040) (BuildId: 949049955bdf8b7197390b1978a1dfc3ef6fdf38) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: FPE nptl/pthread_kill.c:44 in __pthread_kill_implementation ==286922==ABORTING ``` close GH-16384
show more ...
|
#
1e7eba0b |
| 24-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
[ci skip] Fix NEWS formatting
|
#
e1e1e64a |
| 23-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16559: UBSan abort in ext/gd/libgd/gd_interpolation.c:1007 The `uchar_clamp` function was backported from old code, this backports it from new code. Closes GH-16562.
|
#
58929919 |
| 20-Oct-2024 |
Máté Kocsis |
Fix GH-16131: Prevent mixing PDO sub-classes with different DSN
|
#
bb6cf5e9 |
| 22-Oct-2024 |
Saki Takamachi |
[ci skip] Update NEWS for PHP 8.4.0RC4
|
#
2d068c4f |
| 21-Oct-2024 |
Ilija Tovilo |
Fix lineno for inheritance errors of early bound classes Fixes GH-16508 Closes GH-16532
|
#
de7ef3fa |
| 21-Oct-2024 |
Ilija Tovilo |
Fix lineno in function redeclaration error We were previously using the lineno of the first instruction, rather than the start of the function itself. Fixes GH-16509 Closes
Fix lineno in function redeclaration error We were previously using the lineno of the first instruction, rather than the start of the function itself. Fixes GH-16509 Closes GH-16531
show more ...
|
#
8720063c |
| 21-Oct-2024 |
Ilija Tovilo |
Fix propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline Fixes GH-16515 Closes GH-16529
|
#
64081d13 |
| 11-Sep-2024 |
Arnaud Le Blanc |
Lazy objects: Update class constants earlier If a lazy object is created for a class whose constants can not be updated, then we have created an instance of a non-instantiable class. Thi
Lazy objects: Update class constants earlier If a lazy object is created for a class whose constants can not be updated, then we have created an instance of a non-instantiable class. This breaks the expectations of clone. Here I ensure that a class has its constants updated before creating a lazy instance of it. Fixes OSS-Fuzz #71407 Closes GH-15856
show more ...
|
#
f9ce5e79 |
| 21-Oct-2024 |
Christoph M. Becker |
Fix GH-16523: FILTER_FLAG_HOSTNAME accepts ending hyphen Domain name labels must not end with a hyphen, and that is also true for the last label. Apparently, this has been overlooked so
Fix GH-16523: FILTER_FLAG_HOSTNAME accepts ending hyphen Domain name labels must not end with a hyphen, and that is also true for the last label. Apparently, this has been overlooked so far. Closes GH-16540.
show more ...
|
#
51b642f2 |
| 21-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16535: UAF when using document as a child Documents can never be children of any node. Closes GH-16539.
|