Commit e63dae29419 for php.net

commit e63dae2941959c832b5488fc66b1b7375d25efcb
Author: David Carlier <devnexen@gmail.com>
Date:   Sat Dec 20 22:15:12 2025 +0000

    ext/posix: (Further) fix groups array creation on macos.

    With macos Tahoe and clang "17.0.0" (Xcode) the ext/posix/tests/posix_getgrgid_macosx.phpt test crashes as follow:

    ext/posix/posix.c:681:19: runtime error: load of misaligned address 0x60800000e972 for type 'char **', which requires 8 byte alignment
    0x60800000e972: note: pointer points here
    70 00  2a 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00
    seems memcpy had been translated to a load instruction ?
    anyhow, we force to copy a "proper" char * source.

    close GH-20744

diff --git a/NEWS b/NEWS
index b52e9b1a136..44da45b565b 100644
--- a/NEWS
+++ b/NEWS
@@ -38,6 +38,10 @@ PHP                                                                        NEWS
   . Fix SplFileInfo::openFile() in write mode. (ndossche)
   . Fix build on legacy OpenSSL 1.1.0 systems. (Giovanni Giacobbi)

+- POSIX:
+  . Fixed crash on posix groups to php array creation on macos.
+    (David Carlier)
+
 - SPL:
   . Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()).
     (David Carlier)
diff --git a/ext/posix/posix.c b/ext/posix/posix.c
index 2c87fbd28d9..85ea03d8cc0 100644
--- a/ext/posix/posix.c
+++ b/ext/posix/posix.c
@@ -678,7 +678,8 @@ int php_posix_group_to_array(struct group *g, zval *array_group) /* {{{ */
 	for (count = 0;; count++) {
 		/* gr_mem entries may be misaligned on macos. */
 		char *gr_mem;
-		memcpy(&gr_mem, &g->gr_mem[count], sizeof(char *));
+		char *entry = (char *)g->gr_mem + (count * sizeof (char *));
+		memcpy(&gr_mem, entry, sizeof(char *));
 		if (!gr_mem) {
 			break;
 		}