Skip to content

[pull] master from php:master#833

Merged
pull[bot] merged 11 commits into
dolfly:masterfrom
php:master
Jun 18, 2026
Merged

[pull] master from php:master#833
pull[bot] merged 11 commits into
dolfly:masterfrom
php:master

Conversation

@pull

@pull pull Bot commented Jun 18, 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 and others added 11 commits June 18, 2026 09:29
In the long-column fetch path, when the ODBC driver reports the total
column length rather than SQL_NO_TOTAL, the result string was seeded by
copying orig_fetched_len + 1 bytes out of C->data, which holds at most
LONG_COLUMN_BUFFER_SIZE bytes from the first SQLGetData. For a column
larger than that buffer this reads past C->data. Seed only the bytes
actually present in the buffer, matching the SQL_NO_TOTAL branch; the
remainder is still fetched by the loop.

Closes GH-22349
* PHP-8.5:
  Fix heap over-read seeding the long-column buffer in pdo_odbc
When a descriptor spec entry fails to set up (unknown type, missing
mode) after an earlier entry already opened a pipe or socket,
proc_open() jumped to exit_fail without closing the descriptors it had
already opened, leaking those fds; repeated calls exhaust the process
descriptor table. Close the opened descriptors at exit_fail and drop
the now-redundant per-call close before each spawn-failure goto.

Closes GH-22311
* PHP-8.4:
  Fix file descriptor leak when proc_open() descriptor setup fails
* PHP-8.5:
  Fix file descriptor leak when proc_open() descriptor setup fails
Similar to #21942 and #21871. The dl function in std extension now silently truncates
from NUL bytes. Now we reject any parameter containing NUL byte(s) by throwing a 
ValueErrpr
Validate each ZIP extra field header before consuming its payload. The old
parser kept the remaining extra field length in a uint16_t and subtracted the
declared payload size plus the header size without first checking that the
field fit inside the remaining extra data.

A malformed ZIP central directory entry could therefore underflow the counter
and make the parser continue into following bytes, such as the file comment.
That allowed comment bytes to be interpreted as another extra field and update
metadata like the entry mtime.

Reject truncated extra headers and oversized payloads, keep the remaining
length in size_t while parsing, and check seeks that skip unknown or unused
field data. Add a regression test that builds a malformed ZIP and expects
PharData to reject it.

Closes #22330
* PHP-8.4:
  ext/phar: Fix ZIP extra field length underflow (#22330)
…22357)

This is in order to remove usage of HASH_OF() and interpreting objects as arrays within PHP

As this is a new parameter, there is no BC break.
* PHP-8.5:
  ext/phar: Fix ZIP extra field length underflow (#22330)
@pull pull Bot locked and limited conversation to collaborators Jun 18, 2026
@pull pull Bot added the ⤵️ pull label Jun 18, 2026
@pull pull Bot merged commit d1ffc25 into dolfly:master Jun 18, 2026
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.

3 participants