summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ext/etc/etc.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d86c3d1aab..ec627811fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri Mar 16 18:28:06 2007 Akinori MUSHA <knu@iDaemons.org>
+
+ * ext/etc/etc.c (etc_getgrgid): Fix a bug in Etc::getgrgid()
+ always returning the (real) group entry of the running process;
+ reported by: UEDA Hiroyuki <ueda AT netforest.ad.jp>
+ in [ruby-dev:30586].
+
Fri Mar 16 16:33:58 2007 Akinori MUSHA <knu@iDaemons.org>
* ext/thread/thread.c (unlock_mutex_inner): Make sure that the
diff --git a/ext/etc/etc.c b/ext/etc/etc.c
index 447d833bc7..486963378b 100644
--- a/ext/etc/etc.c
+++ b/ext/etc/etc.c
@@ -337,7 +337,7 @@ etc_getgrgid(obj, id)
struct group *grp;
rb_secure(4);
- gid = getgid();
+ gid = PW_VAL2GID(id);
grp = getgrgid(gid);
if (grp == 0) rb_raise(rb_eArgError, "can't find group for %d", gid);
return setup_group(grp);