diff options
author | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-03-06 15:25:58 +0000 |
---|---|---|
committer | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-03-06 15:25:58 +0000 |
commit | c6bb8beb5294ce1162ea0f088707a9fe167449a7 (patch) | |
tree | 58fc9d16e18e414fdc03f13c35066058dd24e49c /process.c | |
parent | b1329e3b63193730837e189b927a97cb1d73f3ba (diff) |
* process.c (proc_getgroups): get rid of maxgroups dependency.
ngroups can be calculated dynamically.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r-- | process.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -4563,9 +4563,13 @@ proc_getgroups(VALUE obj) int i, ngroups; rb_gid_t *groups; - groups = ALLOCA_N(rb_gid_t, maxgroups); + ngroups = getgroups(0, NULL); + if (ngroups == -1) + rb_sys_fail(0); + + groups = ALLOCA_N(rb_gid_t, ngroups); - ngroups = getgroups(maxgroups, groups); + ngroups = getgroups(ngroups, groups); if (ngroups == -1) rb_sys_fail(0); |