* file.c (rb_group_member): renamed from group_member.

don't use group_member() in glibc because it's not valgrind clean.
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=570047


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2010-02-16 12:00:24 +00:00
parent 4d71618c38
commit 792b3efa62
3 changed files with 14 additions and 10 deletions

View File

@ -1,3 +1,9 @@
Tue Feb 16 20:56:39 2010 Tanaka Akira <akr@fsij.org>
* file.c (rb_group_member): renamed from group_member.
don't use group_member() in glibc because it's not valgrind clean.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=570047
Tue Feb 16 19:19:21 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> Tue Feb 16 19:19:21 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/dl/cfunc.c (rb_dlcfunc_call): convert signed value to * ext/dl/cfunc.c (rb_dlcfunc_call): convert signed value to

View File

@ -1114,7 +1114,7 @@ AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot getcwd eacce
setitimer setruid seteuid setreuid setresuid setproctitle socketpair\ setitimer setruid seteuid setreuid setresuid setproctitle socketpair\
setrgid setegid setregid setresgid issetugid pause lchown lchmod\ setrgid setegid setregid setresgid issetugid pause lchown lchmod\
getpgrp setpgrp getpgid setpgid initgroups getgroups setgroups\ getpgrp setpgrp getpgid setpgid initgroups getgroups setgroups\
getpriority getrlimit setrlimit sysconf group_member\ getpriority getrlimit setrlimit sysconf \
dlopen sigprocmask sigaction sigsetjmp _setjmp _longjmp snprintf\ dlopen sigprocmask sigaction sigsetjmp _setjmp _longjmp snprintf\
setsid telldir seekdir fchmod cosh sinh tanh log2 round signbit\ setsid telldir seekdir fchmod cosh sinh tanh log2 round signbit\
setuid setgid daemon select_large_fdset setenv unsetenv\ setuid setgid daemon select_large_fdset setenv unsetenv\

16
file.c
View File

@ -921,9 +921,8 @@ rb_file_lstat(VALUE obj)
#endif #endif
} }
#ifndef HAVE_GROUP_MEMBER
static int static int
group_member(GETGROUPS_T gid) rb_group_member(GETGROUPS_T gid)
{ {
#ifndef _WIN32 #ifndef _WIN32
if (getgid() == gid || getegid() == gid) if (getgid() == gid || getegid() == gid)
@ -950,7 +949,6 @@ group_member(GETGROUPS_T gid)
#endif #endif
return FALSE; return FALSE;
} }
#endif
#ifndef S_IXUGO #ifndef S_IXUGO
# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
@ -987,7 +985,7 @@ eaccess(const char *path, int mode)
if (st.st_uid == euid) /* owner */ if (st.st_uid == euid) /* owner */
mode <<= 6; mode <<= 6;
else if (group_member(st.st_gid)) else if (rb_group_member(st.st_gid))
mode <<= 3; mode <<= 3;
if ((int)(st.st_mode & mode) == mode) return 0; if ((int)(st.st_mode & mode) == mode) return 0;
@ -1487,7 +1485,7 @@ rb_file_grpowned_p(VALUE obj, VALUE fname)
struct stat st; struct stat st;
if (rb_stat(fname, &st) < 0) return Qfalse; if (rb_stat(fname, &st) < 0) return Qfalse;
if (group_member(st.st_gid)) return Qtrue; if (rb_group_member(st.st_gid)) return Qtrue;
#endif #endif
return Qfalse; return Qfalse;
} }
@ -4275,7 +4273,7 @@ static VALUE
rb_stat_grpowned(VALUE obj) rb_stat_grpowned(VALUE obj)
{ {
#ifndef _WIN32 #ifndef _WIN32
if (group_member(get_stat(obj)->st_gid)) return Qtrue; if (rb_group_member(get_stat(obj)->st_gid)) return Qtrue;
#endif #endif
return Qfalse; return Qfalse;
} }
@ -4337,7 +4335,7 @@ rb_stat_R(VALUE obj)
return st->st_mode & S_IRUSR ? Qtrue : Qfalse; return st->st_mode & S_IRUSR ? Qtrue : Qfalse;
#endif #endif
#ifdef S_IRGRP #ifdef S_IRGRP
if (group_member(get_stat(obj)->st_gid)) if (rb_group_member(get_stat(obj)->st_gid))
return st->st_mode & S_IRGRP ? Qtrue : Qfalse; return st->st_mode & S_IRGRP ? Qtrue : Qfalse;
#endif #endif
#ifdef S_IROTH #ifdef S_IROTH
@ -4429,7 +4427,7 @@ rb_stat_W(VALUE obj)
return st->st_mode & S_IWUSR ? Qtrue : Qfalse; return st->st_mode & S_IWUSR ? Qtrue : Qfalse;
#endif #endif
#ifdef S_IWGRP #ifdef S_IWGRP
if (group_member(get_stat(obj)->st_gid)) if (rb_group_member(get_stat(obj)->st_gid))
return st->st_mode & S_IWGRP ? Qtrue : Qfalse; return st->st_mode & S_IWGRP ? Qtrue : Qfalse;
#endif #endif
#ifdef S_IWOTH #ifdef S_IWOTH
@ -4524,7 +4522,7 @@ rb_stat_X(VALUE obj)
return st->st_mode & S_IXUSR ? Qtrue : Qfalse; return st->st_mode & S_IXUSR ? Qtrue : Qfalse;
#endif #endif
#ifdef S_IXGRP #ifdef S_IXGRP
if (group_member(get_stat(obj)->st_gid)) if (rb_group_member(get_stat(obj)->st_gid))
return st->st_mode & S_IXGRP ? Qtrue : Qfalse; return st->st_mode & S_IXGRP ? Qtrue : Qfalse;
#endif #endif
#ifdef S_IXOTH #ifdef S_IXOTH