1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00
Commit Graph

144215 Commits

Author SHA1 Message Date
David Carlier
277a016723 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  ext/gd: phpinfo() to be able to display libjpeg 10.0 support.
2026-03-14 18:24:17 +00:00
David Carlier
e257c086bb ext/gd: phpinfo() to be able to display libjpeg 10.0 support.
Fix #21431

Co-Authored-By: rainerjung

close GH-21432
2026-03-14 18:23:35 +00:00
ndossche
e0ac74fb52 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  ext/zip: Fix const-generic compile warning
2026-03-14 15:07:06 +01:00
ndossche
b95f0ebc47 ext/zip: Fix const-generic compile warning 2026-03-14 15:06:57 +01:00
ndossche
ed3eb8519a Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  [ci skip] NEWS for GH-20838
2026-03-12 22:04:32 +01:00
ndossche
9150226166 [ci skip] NEWS for GH-20838 2026-03-12 22:04:08 +01:00
ndossche
757dadcf1f Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-21083: Skip private_key_bits validation for EC/curve-based keys
2026-03-12 22:01:21 +01:00
Ilia Alshanetsky
7950482562 Fix GH-21083: Skip private_key_bits validation for EC/curve-based keys
openssl_pkey_new() checks private_key_bits >= 384 before generating any
key. For EC, X25519, ED25519, X448, and ED448 the size is inherent to
the curve or algorithm, so this check doesn't apply and causes failures
when default_bits is missing from openssl.cnf (which is the case in
OpenSSL 3.6's default config).

Skip the minimum-bits check for key types that don't use private_key_bits.

Closes GH-21387.
2026-03-12 21:53:22 +01:00
ndossche
a3f486dfa3 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-21357: XSLTProcessor works with DOMDocument, but fails with Dom\XMLDocument
2026-03-11 22:31:33 +01:00
ndossche
284fd7779d Fix GH-21357: XSLTProcessor works with DOMDocument, but fails with Dom\XMLDocument
Registering namespace after the parsing is too late because parsing can
fail due to attributes referencing namespaces.
So we have to register fake namespaces before the parsing.
However, the clone operation reconciles namespaces in the wrong way, so
we have to clone via an object.

Closes GH-21371.
2026-03-11 22:31:03 +01:00
Dmitry Stogov
35ee95a827 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-20838: JIT compiler produces wrong arithmetic results (#21383)
2026-03-11 15:23:12 +03:00
Ilia Alshanetsky
80dc4c19d6 Fix GH-20838: JIT compiler produces wrong arithmetic results (#21383)
Insert type guards (CHECK_OP1_TRACE_TYPE / CHECK_OP2_TRACE_TYPE) on the
sensitive bailout paths in ADD/SUB/MUL JIT compilation: the MAY_BE_UNDEF
and non-numeric operand breaks. Guards are only emitted when the traced
operand type is IS_LONG or IS_DOUBLE, ensuring TSSA result type
predictions stay valid for side traces without affecting the normal
numeric fast path.


Fixes GH-20838

Co-authored-by: Dmitry Stogov <dmitrystogov@gmail.com>
2026-03-11 15:22:50 +03:00
David Carlier
f04873c1b8 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  ext/soap: Fix wrong cookie options offset calculation, using separator offset instead.
2026-03-10 21:59:38 +00:00
David Carlier
1b61d555fb ext/soap: Fix wrong cookie options offset calculation, using separator offset instead.
The cookie option parser uses a wrong offset to start scanning
attributes, causing cookie values containing substrings like
"path=" or "domain=" to be falsely matched as attributes.

close GH-21400
2026-03-10 21:58:52 +00:00
ndossche
f33091c972 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  soap: Fix const violation
2026-03-10 21:08:51 +01:00
ndossche
c4c1261196 soap: Fix const violation 2026-03-10 21:06:20 +01:00
ndossche
bc0871dd3d Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  soap: Fix const-generic compile warning
2026-03-10 20:52:00 +01:00
ndossche
ae0bf447b4 soap: Fix const-generic compile warning 2026-03-10 20:51:51 +01:00
ndossche
14f0f8650c Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix memory leak in shm_get_var() when variable is corrupted
2026-03-10 20:30:31 +01:00
ndossche
ea8aab9220 Fix memory leak in shm_get_var() when variable is corrupted
This path wasn't tested (clearly).
To trigger this we use FFI, which seemed like the easiest way that
doesn't involve using another process messing with the shared memory.

Closes GH-21388.
2026-03-10 20:30:02 +01:00
ndossche
3b8aac8dad Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Revert "ext/session: Fix memory leak due to multiple exception happening during session abort"
2026-03-10 20:29:08 +01:00
ndossche
3073948885 Revert "ext/session: Fix memory leak due to multiple exception happening during session abort"
This reverts commit 0acde11945.

The patch is incorrect as described in GH-21200 in the post-merge
comments.
2026-03-10 20:28:47 +01:00
Calvin Buckley
06f9389d69 Update NEWS for pcntl fix [skip ci] 2026-03-09 14:31:20 -03:00
Calvin Buckley
f38058d223 ext/pcntl: Bump num_signals to uint16_t (#21347)
On AIX, NSIG is def'd as SIGMAX64+1, and SIGMAX64 itself is def'd as
255:

```
$ grep -Rw SIGMAX64 /QOpenSys/usr/include/
/QOpenSys/usr/include/sys/signal.h:#define SIGMAX64 255
/QOpenSys/usr/include/sys/signal.h:#define SIGMAX SIGMAX64
/QOpenSys/usr/include/sys/signal.h:#define NSIG64               (SIGMAX64+1)
```

...this causes an overflow when we set num_signals from the value of
NSIG, per GCC:

```
/rpmbuild/BUILD/php-8.5.3/ext/pcntl/pcntl.c:216:25: warning: large integer implicitly truncated to unsigned type [-Woverflow]
  PCNTL_G(num_signals) = NSIG;
                         ^~~~
```

...when we try to use pcntl to i.e. install a signal handler, we get an
error from pcntl:

```
Fatal error: Uncaught ValueError: pcntl_signal(): Argument #1 ($signal) must be less than 0 in phar:///QOpenSys/pkgs/bin/composer/vendor/seld/signal-handler/src/SignalHandler.php:491
```

The easiest way to deal with this silly AIX behaviour is to just promote
the storage size.
2026-03-09 14:29:06 -03:00
Ilija Tovilo
ff3f59b5a7 Fix incorrect property_info sizing for locally shadowed trait properties
Previously, static trait properties would always redeclare locally declared
static properties to make sure any inherited property would stop sharing a
common slot with the parent. This would leave holes in property_info, creating
issues for this code:

    zend_hash_extend(&ce->properties_info,
        zend_hash_num_elements(&ce->properties_info) +
        zend_hash_num_elements(&parent_ce->properties_info), 0);

where zend_hash_num_elements(&ce->properties_info) +
zend_hash_num_elements(&parent_ce->properties_info) is supposed to extend the
hash table enough to hold all additional properties coming from parent. However,
if ce->properties_info contains holes this might not be enough, given all parent
properties are appended at nNumUsed.

This could be fixed by further extending the hash table, but we can also avoid
the holes in properties_info completely by not redeclaring trait properties that
are already declared in the target class. This is now possible because traits
are bound before performing parent class inheritance, so if the property is
already present we know it will separate the property slot.

Fixes GH-20672
Closes GH-21358
2026-03-09 13:50:27 +01:00
David Carlier
b0470d1669 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  ext/pgsql: Fix preprocessor guard typo that silently disabled a feature
2026-03-09 07:42:53 +00:00
武田 憲太郎
35d98cb6ce ext/pgsql: Fix preprocessor guard typo that silently disabled a feature
Fix `PQTRACE_SUPPRESS_TIMESTAMPS` guard misspelling in pgsql.stub.php.

The guard has been misspelled as `PQTRACE_SUPPPRESS_TIMESTAMPS`
(three P's) since 7ec8ae12c4, preventing the
`PGSQL_TRACE_SUPPRESS_TIMESTAMPS` constant from being registered.

close GH-21386
2026-03-09 07:41:04 +00:00
Gina Peter Banyard
10e02b0a4a Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  ext/session: Fix memory leak due to multiple exception happening during session abort
2026-03-07 13:30:15 +00:00
Gina Peter Banyard
0acde11945 ext/session: Fix memory leak due to multiple exception happening during session abort
Closes GH-21200

Co-authored-by: arshidkv12 <arshidkv12@gmail.com>
2026-03-07 13:28:42 +00:00
Jakub Zelenka
ceae788b78 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Remove XFAIL for proc-idle-timeout.phpt
2026-03-07 13:15:55 +01:00
Jakub Zelenka
6d97fd660c Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Remove XFAIL for proc-idle-timeout.phpt
2026-03-07 13:15:26 +01:00
Jakub Zelenka
2379e3479a Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Remove XFAIL for proc-idle-timeout.phpt
2026-03-07 13:14:34 +01:00
Jakub Zelenka
04023e5e72 Remove XFAIL for proc-idle-timeout.phpt 2026-03-07 13:11:37 +01:00
Jakub Zelenka
c2a1d3925b Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Add back FPM_RUN_RESOURCE_HEAVY_TESTS
2026-03-07 13:09:04 +01:00
Jakub Zelenka
6d97ed57d6 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Add back FPM_RUN_RESOURCE_HEAVY_TESTS
2026-03-07 13:07:57 +01:00
Jakub Zelenka
1683e01391 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Add back FPM_RUN_RESOURCE_HEAVY_TESTS
2026-03-07 13:07:17 +01:00
Jakub Zelenka
71a01794cc Add back FPM_RUN_RESOURCE_HEAVY_TESTS 2026-03-07 13:05:32 +01:00
Ilija Tovilo
1177670fe5 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  [skip ci] Mark sapi/fpm/tests/proc-idle-timeout.phpt as XFAIL
2026-03-07 12:42:46 +01:00
Ilija Tovilo
e8e6f900cd Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Mark sapi/fpm/tests/proc-idle-timeout.phpt as XFAIL
2026-03-07 12:42:39 +01:00
Ilija Tovilo
37bee6ef4c Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Mark sapi/fpm/tests/proc-idle-timeout.phpt as XFAIL
2026-03-07 12:42:21 +01:00
Ilija Tovilo
3902f843f7 [skip ci] Mark sapi/fpm/tests/proc-idle-timeout.phpt as XFAIL
This test fails all the time. It should be improved.
2026-03-07 12:41:52 +01:00
ndossche
37fbbbc4d3 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Update ext/standard/libavifinfo
2026-03-07 11:18:29 +01:00
Yannis
c3777c73b3 Update ext/standard/libavifinfo
Fixes GH-20627.
Closes GH-21250.
2026-03-07 11:17:56 +01:00
Remi Collet
1d7cddd3ce Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  zip is now 1.22.8
2026-03-06 09:54:55 +01:00
Remi Collet
fb80f35fdc zip is now 1.22.8 2026-03-06 09:54:32 +01:00
David Carlier
449361afbf Fix GH-21333: use-after-free when unlinking entries during iteration of a compressed phar.
close GH-21334
2026-03-05 22:31:49 +00:00
David Carlier
d08d80cf02 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-21336: undefined behavior in snmp setSecurity.
2026-03-05 18:51:23 +00:00
David Carlier
41458c6ad6 Fix GH-21336: undefined behavior in snmp setSecurity.
close GH-21337
2026-03-05 18:48:39 +00:00
Máté Kocsis
7e78b0f1d2 Add support for generating the namespace for the manual (#21313)
[skip ci]
2026-03-05 13:42:36 +01:00
Ilija Tovilo
099769dfa1 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Backport .github changes for Solaris
2026-03-04 10:11:25 +01:00