Commit be55be0a4db for php.net

commit be55be0a4db5cc681b5ec0544fc602706a3b697e
Author: Ilia Alshanetsky <ilia@ilia.ws>
Date:   Wed Jun 24 07:34:59 2026 -0400

    Fix posix_getgrnam()/posix_getgrgid() crash on NULL group name

    php_posix_group_to_array() passed gr_name straight to add_assoc_string()
    with no NULL guard, so a NULL group name segfaults via zend_string_init(),
    while the sibling gr_passwd field right below is already guarded. glibc's
    files NSS backend normalizes empty fields to "", but third-party NSS
    modules (nss-systemd, nss-ldap, sssd and other directory backends)
    populate struct group directly and may leave gr_name NULL. Guard it and
    emit null instead, matching the existing gr_passwd handling.

    Closes GH-22433

diff --git a/ext/posix/posix.c b/ext/posix/posix.c
index 38f7eaa4186..b659207f67b 100644
--- a/ext/posix/posix.c
+++ b/ext/posix/posix.c
@@ -669,7 +669,11 @@ int php_posix_group_to_array(struct group *g, zval *array_group) /* {{{ */

 	array_init(&array_members);

-	add_assoc_string(array_group, "name", g->gr_name);
+	if (g->gr_name) {
+		add_assoc_string(array_group, "name", g->gr_name);
+	} else {
+		add_assoc_null(array_group, "name");
+	}
 	if (g->gr_passwd) {
 		add_assoc_string(array_group, "passwd", g->gr_passwd);
 	} else {