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

145331 Commits

Author SHA1 Message Date
Tim Düsterhus
6e664a04cb reflection: Check against the known string in is_closure_invoke() (#21402)
This can likely succeed by just comparing pointers in a majority of cases.
2026-03-10 20:06:34 +01:00
Tim Düsterhus
f29bc086f1 reflection: Remove _DO_THROW() macro (#21399)
This is an unnecessary layer of indirection that hides the exception type and
does not exist elsewhere (in a similar way).
2026-03-10 08:04:21 +01:00
Gina Peter Banyard
f93b17076a Zend: inherit interfaces early (#18622)
The primary motivation for this is that this is required for my abstract generic types proof of concept, as the resolving of bound types needs to happen early to properly track the types.

However, there doesn't seem to be a good reason for delaying the inheritance of interfaces.
This approach might even allow us to drop the `iface` parameter of the `interface_gets_implemented()` handler as the interface name is always known.
2026-03-09 21:57:50 +00:00
Gina Peter Banyard
1096ea149a Zend: mark variable as const 2026-03-09 21:41:06 +00:00
Gina Peter Banyard
032e5f6774 Zend: mark arg_info parameters of zend_do_perform_arg_type_hint_check() const 2026-03-09 21:41:06 +00:00
Gina Peter Banyard
2b20627cbc Zend: mark zend_perform_covariant_type_check() as static
This function is not defined in any headers
2026-03-09 21:41:06 +00:00
Gina Peter Banyard
6880a6c49d Zend: mark scope parameter of zend_type_to_string_resolved() const
And propagate const qualifier to use sites of this function.
2026-03-09 21:41:06 +00:00
Gina Peter Banyard
8bff644233 Zend: remove unused scope parameter of add_intersection_type() 2026-03-09 21:41:06 +00:00
Weilin Du
da1e89fd3d RFC: Add Form Feed in Trim Functions (#20788)
RFC: https://wiki.php.net/rfc/trim_form_feed

Resolves GH-20783.
2026-03-09 22:28:50 +01:00
ndossche
0155b50984 phar: Fix const-generic compile warnings 2026-03-09 20:45:07 +01:00
Calvin Buckley
d81db0b9de Merge branch 'PHP-8.5'
* PHP-8.5:
  Update NEWS for pcntl fix [skip ci]
  ext/pcntl: Bump num_signals to uint16_t (#21347)
2026-03-09 14:31:32 -03: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
cccc54872a Merge branch 'PHP-8.5'
* PHP-8.5:
  Fix incorrect property_info sizing for locally shadowed trait properties
2026-03-09 13:50:59 +01: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
148dc1dd66 Merge branch 'PHP-8.5'
* PHP-8.5:
  ext/pgsql: Fix preprocessor guard typo that silently disabled a feature
2026-03-09 07:45:20 +00: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
KentarouTakeda
c56e8caaed ext/pgsql, ext/pdo_pgsql: Remove preprocessor guards for symbols predating libpq 10 (#21384)
While working on php/doc-en#5409 to clean up outdated PostgreSQL
version notes in the documentation, I noticed that the source code
also retains #ifdef guards for symbols guaranteed to exist in
libpq >= 10.0 (the minimum enforced in build/php.m4 via
PQencryptPasswordConn).

Removed guards (all confirmed in PostgreSQL 10 documentation):

- `PG_DIAG_{INTERNAL_POSITION,INTERNAL_QUERY}`: libpq 8.0+
- `PG_DIAG_{SCHEMA,TABLE,COLUMN,DATATYPE,CONSTRAINT}_NAME`: libpq 9.3+
- `PG_DIAG_SEVERITY_NONLOCALIZED`: libpq 9.6+
- `CONNECTION_SSL_STARTUP`: libpq 8.0+
- `CONNECTION_CONSUME`: libpq 10.0+

Refs:
- https://www.postgresql.org/docs/10/libpq-exec.html#LIBPQ-PQRESULTERRORFIELD
- https://www.postgresql.org/docs/10/libpq-connect.html#LIBPQ-PQCONNECTSTARTPARAMS
- 53e31d5883/build/php.m4 (L1927)
2026-03-08 05:42:50 +00:00
Ilia Alshanetsky
53e31d5883 Fix GH-21362: ReflectionMethod::invoke() allows different Closures (#21366)
ReflectionMethod::invoke() (and invokeArgs()) for Closure::__invoke()
incorrectly accepted any Closure object, not just the one the
ReflectionMethod was created from. This happened because all Closures
share a single zend_ce_closure class entry, so the instanceof_function()
check always passed.

Fix: store the original Closure object in intern->obj during
ReflectionMethod construction, then compare object identity in
reflection_method_invoke() to reject different Closure instances.

Closes GH-21362
2026-03-07 17:19:33 -08:00
Kamil Tekiela
eedbffec2e Empty some values of mysqli_get_charset() (#21361)
* Stop reporting unhelpful values in mysqli_get_charset

* Remove element "comment" as it has been undocumented
2026-03-07 22:09:02 +00:00
Peter Kokot
58acc671db ext/mbstring: Fix deprecation warning (#21363)
This fixes the PHP deprecation warning:

    PHP Deprecated:  Implicit conversion from float 2048.96875 to int
    loses precision in .../ext/mbstring/gen_rare_cp_bitvec.php on line 9
2026-03-07 16:16:59 +01:00
David CARLIER
f830fa9948 Sockets refactoring 2026 (#21365)
ext/sockets: internal refactorings.

- remove redundant memsets and faster socket unix path copy.
- simplify php_open_listen_sock.
- use INADDR_ANY directly instead of resolving via gethostbyname.
- remove redundant memsets in conversions.
2026-03-07 14:09:49 +00:00
Gina Peter Banyard
f2d96c84f0 Merge branch 'PHP-8.5'
* PHP-8.5:
  ext/session: Fix memory leak due to multiple exception happening during session abort
2026-03-07 13:30:28 +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
873468c8df Merge branch 'PHP-8.5'
* PHP-8.5:
  Remove XFAIL for proc-idle-timeout.phpt
2026-03-07 13:16:19 +01: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
be8ac28230 Merge branch 'PHP-8.5'
* PHP-8.5:
  Add back FPM_RUN_RESOURCE_HEAVY_TESTS
2026-03-07 13:13: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
242445e22b Merge branch 'PHP-8.5'
* PHP-8.5:
  [skip ci] Mark sapi/fpm/tests/proc-idle-timeout.phpt as XFAIL
2026-03-07 12:42:53 +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
61fd5ceb68 Merge branch 'PHP-8.5'
* PHP-8.5:
  Update ext/standard/libavifinfo
2026-03-07 11:18:33 +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
Peter Kokot
f99ca6347f Windows build: Use GREP_HEADER() instead of CHECK_FUNC_IN_HEADER() (#21315)
This removes the following unused compile definitions:

- HAVE_OSSL_SET_MAX_THREADS
- HAVE_ARGON2ID_HASH_RAW

The CHECK_FUNC_IN_HEADER() function defines the 'HAVE_<FUNCTION>'
compile definitions to 0 or 1, but these aren't used in the code.
Defining such preprocessor macros makes it difficult to track and sync
with other build systems.
2026-03-06 14:11:20 +01:00
Remi Collet
806e0d0c03 Merge branch 'PHP-8.5'
* PHP-8.5:
  zip is now 1.22.8
2026-03-06 09:55:12 +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
77925b971a Merge branch 'PHP-8.5'
* PHP-8.5:
  Fix GH-21333: use-after-free when unlinking entries during iteration of a compressed phar.
2026-03-05 22:32:38 +00: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