summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-05-01 11:00:41 +0800
committerXinchen Hui <laruence@gmail.com>2016-05-01 11:00:41 +0800
commit895337ddbdeb322da3c583ef7ea03b45d0c8282c (patch)
tree5aed47501f9fe49c607830351f2d57fa04eb90ea
parentd0b952260e7c9794953268ccc34e1b3843b0be68 (diff)
downloadphp-git-895337ddbdeb322da3c583ef7ea03b45d0c8282c.tar.gz
Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL)
-rw-r--r--NEWS4
-rw-r--r--ext/posix/posix.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 1df7cecc19..4a807c48ee 100644
--- a/NEWS
+++ b/NEWS
@@ -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);