summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--configure.in2
-rw-r--r--file.c16
3 files changed, 14 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 587c98ee9d..7aa5d52464 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Feb 16 20:56:39 2010 Tanaka Akira <[email protected]>
+
+ * 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
+
Thu Feb 11 20:43:00 2010 Tanaka Akira <[email protected]>
* io.c (rb_io_modenum_mode): return "r" for O_RDONLY|O_APPEND.
diff --git a/configure.in b/configure.in
index 1d592e3cbd..cfbd7a39aa 100644
--- a/configure.in
+++ b/configure.in
@@ -646,7 +646,7 @@ AC_CHECK_FUNCS(fmod killpg wait4 waitpid syscall chroot fsync getcwd eaccess\
setproctitle setrgid setegid setregid setresgid issetugid pause\
lchown lchmod getpgrp setpgrp getpgid setpgid initgroups\
getgroups setgroups getpriority getrlimit setrlimit sysconf\
- group_member dlopen sigprocmask\
+ dlopen sigprocmask\
sigaction sigsetjmp _setjmp _longjmp setsid telldir seekdir fchmod\
mktime timegm gettimeofday\
cosh sinh tanh round setuid setgid setenv unsetenv)
diff --git a/file.c b/file.c
index 53452526bd..bf52f77921 100644
--- a/file.c
+++ b/file.c
@@ -816,9 +816,8 @@ rb_file_lstat(obj)
#endif
}
-#ifndef HAVE_GROUP_MEMBER
static int
-group_member(gid)
+rb_group_member(gid)
GETGROUPS_T gid;
{
#ifndef _WIN32
@@ -846,7 +845,6 @@ group_member(gid)
#endif
return Qfalse;
}
-#endif
#ifndef S_IXUGO
# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
@@ -885,7 +883,7 @@ eaccess(path, mode)
if (st.st_uid == euid) /* owner */
mode <<= 6;
- else if (group_member(st.st_gid))
+ else if (rb_group_member(st.st_gid))
mode <<= 3;
if ((st.st_mode & mode) == mode) return 0;
@@ -1312,7 +1310,7 @@ test_grpowned(obj, fname)
struct stat st;
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
return Qfalse;
}
@@ -3897,7 +3895,7 @@ rb_stat_grpowned(obj)
VALUE obj;
{
#ifndef _WIN32
- if (group_member(get_stat(obj)->st_gid)) return Qtrue;
+ if (rb_group_member(get_stat(obj)->st_gid)) return Qtrue;
#endif
return Qfalse;
}
@@ -3961,7 +3959,7 @@ rb_stat_R(obj)
return st->st_mode & S_IRUSR ? Qtrue : Qfalse;
#endif
#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;
#endif
#ifdef S_IROTH
@@ -4029,7 +4027,7 @@ rb_stat_W(obj)
return st->st_mode & S_IWUSR ? Qtrue : Qfalse;
#endif
#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;
#endif
#ifdef S_IWOTH
@@ -4100,7 +4098,7 @@ rb_stat_X(obj)
return st->st_mode & S_IXUSR ? Qtrue : Qfalse;
#endif
#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;
#endif
#ifdef S_IXOTH