diff options
author | Xinchen Hui <laruence@gmail.com> | 2016-05-01 11:00:41 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2016-05-01 11:00:41 +0800 |
commit | 895337ddbdeb322da3c583ef7ea03b45d0c8282c (patch) | |
tree | 5aed47501f9fe49c607830351f2d57fa04eb90ea | |
parent | d0b952260e7c9794953268ccc34e1b3843b0be68 (diff) | |
download | php-git-895337ddbdeb322da3c583ef7ea03b45d0c8282c.tar.gz |
Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL)
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/posix/posix.c | 8 |
2 files changed, 10 insertions, 2 deletions
@@ -29,6 +29,10 @@ PHP NEWS . Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error). (Laruence) +- POSIX: + . Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL). + (esminis at esminis dot lt) + - Postgres: . Fixed bug #72028 (pg_query_params(): NULL converts to empty string). (Laruence) diff --git a/ext/posix/posix.c b/ext/posix/posix.c index e1f4ef6262..25cb26f372 100644 --- a/ext/posix/posix.c +++ b/ext/posix/posix.c @@ -987,8 +987,12 @@ 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); - add_assoc_string(array_group, "passwd", g->gr_passwd); - for (count=0; g->gr_mem[count] != NULL; count++) { + if (array_group->gr_passwd) { + add_assoc_string(array_group, "passwd", g->gr_passwd); + } 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]); } zend_hash_str_update(Z_ARRVAL_P(array_group), "members", sizeof("members")-1, &array_members); |