diff options
-rw-r--r-- | process.c | 2 | ||||
-rw-r--r-- | test/ruby/test_process.rb | 8 |
2 files changed, 9 insertions, 1 deletions
@@ -5948,7 +5948,7 @@ proc_setgroups(VALUE obj, VALUE ary) static VALUE proc_initgroups(VALUE obj, VALUE uname, VALUE base_grp) { - if (initgroups(StringValuePtr(uname), OBJ2GID(base_grp)) != 0) { + if (initgroups(StringValueCStr(uname), OBJ2GID(base_grp)) != 0) { rb_sys_fail(0); } return proc_getgroups(obj); diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index 7bd38c8fed..f300444ecc 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -2339,4 +2339,12 @@ EOS assert_equal pid, Timeout.timeout(30) { Process.wait(pid) } end; end + + if Process.respond_to?(:initgroups) + def test_initgroups + assert_raise(ArgumentError) do + Process.initgroups("\0", 0) + end + end + end end |