* process.c (obj2gid): Don't call endgrnam() if not exist.

Bionic (Android's libc) don't have endgrnam().

* configure.in: Check endgrnam function.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2013-04-27 15:38:36 +00:00
parent b5e8e33ddc
commit 1a67580eb5
3 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,10 @@
Sun Apr 28 00:35:45 2013 Tanaka Akira <akr@fsij.org>
* process.c (obj2gid): Don't call endgrnam() if not exist.
Bionic (Android's libc) don't have endgrnam().
* configure.in: Check endgrnam function.
Sat Apr 27 23:53:00 2013 Charlie Somerville <charlie@charliesomerville.com> Sat Apr 27 23:53:00 2013 Charlie Somerville <charlie@charliesomerville.com>
* lib/yaml.rb: add security warning to YAML documentation * lib/yaml.rb: add security warning to YAML documentation

View File

@ -1700,7 +1700,8 @@ AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot ge
setitimer setruid seteuid setreuid setresuid socketpair\ setitimer setruid seteuid setreuid setresuid 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 close getpwnam_r getgrnam_r\ getpriority getrlimit setrlimit sysconf close \
getpwnam_r getgrnam_r endgrnam \
dlopen sigprocmask sigaction _setjmp _longjmp\ dlopen sigprocmask sigaction _setjmp _longjmp\
getsid setsid telldir seekdir fchmod cosh sinh tanh log2 round llabs\ getsid setsid telldir seekdir fchmod cosh sinh tanh log2 round llabs\
setuid setgid daemon select_large_fdset setenv unsetenv\ setuid setgid daemon select_large_fdset setenv unsetenv\

View File

@ -4808,13 +4808,13 @@ obj2gid(VALUE id
grptr = getgrnam(grpname); grptr = getgrnam(grpname);
#endif #endif
if (!grptr) { if (!grptr) {
#ifndef USE_GETGRNAM_R #if !defined(USE_GETGRNAM_R) && defined(HAVE_ENDGRENT)
endgrent(); endgrent();
#endif #endif
rb_raise(rb_eArgError, "can't find group for %s", grpname); rb_raise(rb_eArgError, "can't find group for %s", grpname);
} }
gid = grptr->gr_gid; gid = grptr->gr_gid;
#ifndef USE_GETGRNAM_R #if !defined(USE_GETGRNAM_R) && defined(HAVE_ENDGRENT)
endgrent(); endgrent();
#endif #endif
} }