Hi,

Ruby 1.8.6
Solaris 10

I wrote this little test script, and ran it via sudo:

Process.egid = 100

p Process.gid
p Process.egid

Process::GID.switch

p Process.gid
p Process.egid

I find these results curious:

0
100

0
0

Shouldn't the second Process.gid be 100?

I'm also confused by this decision in the p_gid_switch() function in 
process.c:

if (gid == egid) {
    errno = EPERM;
    rb_sys_fail(0);
}

Why fail if they're the same? I would have expected a no-op, not a 
failure, especially since the EPERM error is not actually true.

Regards,

Dan