From: "植田裕之" Date: 2007-03-16T17:49:23+09:00 Subject: [ruby-dev:30604] Re: Etc.getgrgid が getgid の値に固定されています Fri, 16 Mar 2007 17:39:52 +0900 のメールにて、 "Akinori MUSHA" さんは書きました : > > getgrgid() に渡す値を getgid() で取得しているのですが、これだと etc_getgrgid(obj, id) > > の id が全く使われませんし... > >  こうでしょうか。 > > Index: etc.c > =================================================================== > --- etc.c (revision 12068) > +++ etc.c (working copy) > @@ -337,7 +337,7 @@ > 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); http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=11786 は気 にしなくても良いですか? すいません、良く分かってませんが... ----- diff -rc ruby-1.8.6/ext/etc/etc.c ruby-1.8.6.patched/ext/etc/etc.c *** ruby-1.8.6/ext/etc/etc.c Tue Feb 13 08:01:19 2007 --- ruby-1.8.6.patched/ext/etc/etc.c Fri Mar 16 17:21:42 2007 *************** *** 337,343 **** struct group *grp; rb_secure(4); ! gid = getgid(); grp = getgrgid(gid); if (grp == 0) rb_raise(rb_eArgError, "can't find group for %d", gid); return setup_group(grp); --- 337,343 ---- struct group *grp; rb_secure(4); ! gid = NUM2GIDT(id); grp = getgrgid(gid); if (grp == 0) rb_raise(rb_eArgError, "can't find group for %d", gid); return setup_group(grp); diff -rc ruby-1.8.6/ruby.h ruby-1.8.6.patched/ruby.h *** ruby-1.8.6/ruby.h Thu Feb 15 11:52:43 2007 --- ruby-1.8.6.patched/ruby.h Fri Mar 16 17:21:25 2007 *************** *** 163,168 **** --- 163,187 ---- # define OFFT2NUM(v) INT2NUM(v) #endif + #ifndef PIDT2NUM + #define PIDT2NUM(v) LONG2NUM(v) + #endif + #ifndef NUM2PIDT + #define NUM2PIDT(v) NUM2LONG(v) + #endif + #ifndef UIDT2NUM + #define UIDT2NUM(v) LONG2NUM(v) + #endif + #ifndef NUM2UIDT + #define NUM2UIDT(v) NUM2LONG(v) + #endif + #ifndef GIDT2NUM + #define GIDT2NUM(v) LONG2NUM(v) + #endif + #ifndef NUM2GIDT + #define NUM2GIDT(v) NUM2LONG(v) + #endif + #define FIX2LONG(x) RSHIFT((long)x,1) #define FIX2ULONG(x) (((unsigned long)(x))>>1) #define FIXNUM_P(f) (((long)(f))&FIXNUM_FLAG) ________________Network × People_  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  株式会社 ネットフォレスト  事業推進室 Dr.WEB 担当       植田 裕之  http://www.netforest.ad.jp/    ueda@netforest.ad.jp  tel:045-663-6277 fax:045-663-6278 ________________________________  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  http://www.kamome.or.jp/ <<< ISP FTTH/ADSL/AIR-EDGE/8&16IP  http://drweb.jp/     <<< 予測するアンチウィルス