Skip to content

[pull] master from php:master#1029

Merged
pull[bot] merged 10 commits into
turkdevops:masterfrom
php:master
Jun 24, 2026
Merged

[pull] master from php:master#1029
pull[bot] merged 10 commits into
turkdevops:masterfrom
php:master

Conversation

@pull

@pull pull Bot commented Jun 24, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

iliaal added 10 commits June 24, 2026 11:11
ZEND_TRACK_ARENA_ALLOC selects an alternative zend_arena struct layout
for AddressSanitizer, but it was only appended to the core CFLAGS, never
recorded in php_config.h. Extensions built separately with phpize inherit
php_config.h rather than the core CFLAGS, so they compiled the untracked
layout while core used the tracked one. Destroying a core-created arena
from such an extension leaked every tracked allocation. Define it with
AC_DEFINE so core and extensions agree on the layout.

Fixes GH-22422
pdo_firebird_handle_factory() raised a ValueError for an out-of-range
TRANSACTION_ISOLATION_LEVEL but only set ret = 0; zend_value_error()
queues the exception without aborting, so control fell through into the
isc_attach_database() block, opened the connection and overwrote ret with
1. The constructor then returned success with a pending ValueError and a
live handle whose isolation level was never selected. Break out of the
attach block when an exception is pending and skip the trailing
fb_interpret() error so the ValueError is the sole result; the existing
!ret cleanup closes the unused handle.

Closes GH-22430
* PHP-8.4:
  Fix invalid Firebird isolation level proceeding with the connection
* PHP-8.5:
  Fix invalid Firebird isolation level proceeding with the connection
dblib_handle_last_id() stored the DBINT return of dbconvert() into a
size_t len. dbconvert() returns -1 on conversion failure, which
sign-extends to SIZE_MAX and is passed as the length to
zend_string_init(), reading far past the 40-byte buffer and requesting a
SIZE_MAX allocation. Hold the result in a DBINT and bail on a negative
return, matching the failure-returns-NULL handling already used for
dbresults()/dbnextrow()/dbdatlen() earlier in the function.

Closes GH-22428
* PHP-8.4:
  Fix signed dbconvert() return stored into size_t in dblib lastInsertId
* PHP-8.5:
  Fix signed dbconvert() return stored into size_t in dblib lastInsertId
php_posix_group_to_array() passed gr_name straight to add_assoc_string()
with no NULL guard, so a NULL group name segfaults via zend_string_init(),
while the sibling gr_passwd field right below is already guarded. glibc's
files NSS backend normalizes empty fields to "", but third-party NSS
modules (nss-systemd, nss-ldap, sssd and other directory backends)
populate struct group directly and may leave gr_name NULL. Guard it and
emit null instead, matching the existing gr_passwd handling.

Closes GH-22433
* PHP-8.4:
  Fix posix_getgrnam()/posix_getgrgid() crash on NULL group name
* PHP-8.5:
  Fix posix_getgrnam()/posix_getgrgid() crash on NULL group name
@pull pull Bot locked and limited conversation to collaborators Jun 24, 2026
@pull pull Bot added the ⤵️ pull label Jun 24, 2026
@pull pull Bot merged commit a098454 into turkdevops:master Jun 24, 2026
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant