From d80f0ff6c0a557d8c993a9d2bd006fb488f6d564 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 20 Jun 2019 16:06:54 +0200 Subject: [PATCH] Handle gr_mem misalignment on macos --- ext/posix/posix.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ext/posix/posix.c b/ext/posix/posix.c index e95064d0fa..98dae1ca3c 100644 --- a/ext/posix/posix.c +++ b/ext/posix/posix.c @@ -998,8 +998,15 @@ int php_posix_group_to_array(struct group *g, zval *array_group) /* {{{ */ } else { add_assoc_null(array_group, "passwd"); } - for (count = 0; g->gr_mem[count] != NULL; count++) { - add_next_index_string(&array_members, g->gr_mem[count]); + for (count = 0;; count++) { + /* gr_mem entries may be misaligned on macos. */ + char *gr_mem; + memcpy(&gr_mem, &g->gr_mem[count], sizeof(char *)); + if (!gr_mem) { + break; + } + + add_next_index_string(&array_members, gr_mem); } zend_hash_str_update(Z_ARRVAL_P(array_group), "members", sizeof("members")-1, &array_members); add_assoc_long(array_group, "gid", g->gr_gid); -- 2.50.1