Skip to content

Conversation

jMichaelA
Copy link
Owner

No description provided.

Danack and others added 30 commits August 31, 2025 08:42
glob() can return the immutable, empty, RCn array since GH-19642.

Closes GH-19652
RFC 3986 technically allows arbitrarily large integers as port numbers, but our
implementation is unable to deal with that, since it expects the port to fit
`zend_long`, reject those explicitly instead of misinterpreting them.
* Remove include "sanity check" to get a better error message

Instead of rejecting directories / non-regular files early with
a generic error, we should just accept them and error later when a
read is attempted. This is more general and will generate a better
error message on Linux. On Windows, the error remains the same as
before.

* Update error message to include include_path

fix format for include path

---------

Co-authored-by: Joe Watkins <krakjoe@php.net>
This reverts commit ca4a841.

We like the error message change, but not the downgrade to notice
at this time in the release cycle.

@bukka will come back around
On aarch64 we must set IR_USE_FRAME_POINTER to ensure that LR/x30 is
saved. Also, fixed_stack_frame_size must be n*16, not n*16+8 like on x86.

Fixes GH-19601
Closes GH-19630
Building opcache into the main executable breaks opcache.huge_code_pages,
as we were relying on the fact that accel_remap_huge_pages() is not in the
same mapping as the main text segment.

Here I ensure that accel_remap_huge_pages() is placed out of the text
segment, and remap only the text segment. This approach is used in [1].

Closes GH-19388.

[1] https://github.com/intel/iodlr/blob/676bb7dec378d561e4d900fbdaed6ce8dbe449a1/large_page-c/large_page.c#L260.
Signed-off-by: Benstone Zhang <benstonezhang@gmail.com>

Closes GH-13443
This seems like an issue that might be potentially causing issues like
GH-12901. The problem is that libs like libcurl, libldap and others use
the default OpenSSL version so this might result in linking issues.

The fact that OpenSSL 1.1.1 was actually good that we were able to have
it in the pipeline but this is just not right setup so we should find
another way how to test it at least in nightly.

Closes GH-19472
IR commit: 3d7ac467fc89c136866f11195355789d9850de9f
* PHP-8.4:
  Update IR
This fixes segfault becuse of UAF in ext/standard/tests/gh14643_longname.phpt
* PHP-8.4:
  Cleanup SSA(s) in case of fatal error during tracing JIT
We need to emit the EXT_STMT opcode before we compile the call, so that we
attach the line number of where the right hand pipe operator starts.

We also do not need to reset the line number anymore.

The following code shows where these EXT_STMTs are introduced.

```
<?php
/* EXT_STMT */ $myString = "<Hello World>";
$result = /* EXT_STMT */ $myString

    |> /* EXT_STMT(!0:$myString) */ \htmlentities(...)

    |>
		/* EXT_STMT($4) */ \str_split(...)

    |> /* EXT_STMT($6) */ (fn($x) => array_map(strtoupper(...), $x))

    |> /* EXT_STMT($9) */ (fn($x) => join( ', ', $x));

/* EXT_STMT */ echo $result, /* EXT_STMT */ "\n";
```
…rnal_encoding()` in tests (#19663)

Moves the usage of `mb_internal_encoding()` to INI section for the tests not testing the encoding/function itself, but the other mbstring/iconv functions.
If (brake->type+1) exeeds 30, we have undefined behavior and won't actually
remove the relevant bit.

See GH-19633
* PHP-8.3:
  Fix date_sunrise() and date_sunset() with partial-hour UTC offset
* PHP-8.4:
  Fix date_sunrise() and date_sunset() with partial-hour UTC offset
The value is temporarily duplicated. While the value is allocated persistently,
it will be freed if the ini value can't be set. This is safe, given the value
has not actually been stored.

Exposed by GH-19619
Closes GH-19671
* PHP-8.3:
  Fix RC assertion in fpm when php_admin_value setting fails
* PHP-8.4:
  Fix RC assertion in fpm when php_admin_value setting fails
Girgias and others added 29 commits September 14, 2025 11:42
In the macOS 26 SDK, xmlFree is defined as a macro for free. This causes
issues where a same-named variable is used. Renaming the variable to
should_free resolves the issue.

See:

    $ grep -B4 -A2 -n "#define xmlFree(" "Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.sdk/usr/include/libxml/globals.h"
    261-#if defined(LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS)
    262-#define xmlMalloc(size) malloc(size)
    263-#define xmlMallocAtomic(size) malloc(size)
    264-#define xmlRealloc(ptr, size) realloc((ptr), (size))
    265:#define xmlFree(ptr) free(ptr)
    266-#define xmlMemStrdup(str) strdup(str)
    267-#endif

Fixes:
```
    In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX26.sdk/usr/include/libxml/xmlIO.h:117,
                    from /Library/Developer/CommandLineTools/SDKs/MacOSX26.sdk/usr/include/libxml/parser.h:813,
                    from /private/tmp/php-20250914-13349-uqsk5o/php-8.4.12/ext/dom/php_dom.h:29,
                    from /private/tmp/php-20250914-13349-uqsk5o/php-8.4.12/ext/dom/attr.c:26:
    /private/tmp/php-20250914-13349-uqsk5o/php-8.4.12/ext/dom/attr.c: In function 'dom_compare_value':
    /private/tmp/php-20250914-13349-uqsk5o/php-8.4.12/ext/dom/attr.c:208:17: error: called object 'free' is not a function or function pointer
      208 |                 xmlFree(attr_value);
          |                 ^~~~~~~
    /private/tmp/php-20250914-13349-uqsk5o/php-8.4.12/ext/dom/attr.c:204:14: note: declared here
      204 |         bool free;
          |              ^~~~
    make: *** [ext/dom/attr.lo] Error 1
```

Closes GH-19832.

Signed-off-by: Ruoyu Zhong <zhongruoyu@outlook.com>
* PHP-8.4:
  Fix naming clash with libxml macro
It is illegal to construct out-of-bound pointers, even if they are not
dereferenced. The current bound checks rely on undefined behaviour.
Fix this by introducing convenience macros that check the remaining
length.
The loop checks against `p` but increases `p2`. I don't see the point of
having 2 separate variables, so use `p` instead to correct the bounds
check and simplify the code in the process.
…ile size

We change the order of operations such that the file size check cannot
overflow in the for loop. This prevents infinite loops.
We also add an overflow check at the end of the loop body to prevent the
addition of offset and box.size from overflowing.
…ures can cause a crash

Due to user closures, the `fbc` address isn't unique if the memory address is reused.
We need to distinguish using a unique key, and we choose arg_info such
that it can be reused across different functions.

Closes GH-19654.
* PHP-8.3:
  Fix GH-19653: Closure named argument unpacking between temporary closures can cause a crash
* PHP-8.4:
  Fix GH-19653: Closure named argument unpacking between temporary closures can cause a crash
@jMichaelA jMichaelA merged commit 9947f39 into jMichaelA:fix-iconv-illumos Sep 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.