[PATCH] Re: glibc and getgrouplist
Roland Illig
roland.illig at gmx.de
Fri Jul 22 13:53:49 UTC 2005
Leonard den Ottolander wrote:
> AC_CHECK_FUNCS([atoll cfgetospeed getsid initgroups memcpy memmove memset \
> putenv setreuid setuid statfs strerror strftime \
> - sysconf tcgetattr tcsetattr truncate getgrouplist])
> + sysconf tcgetattr tcsetattr truncate])
> +
> +dnl The GNU libc, versions < 2.3.3 have a buffer overflow in the getgrouplist(3)
> +dnl function, so we cannot use that function.
> +AC_ARG_WITH(getgrouplist,
> + [ --with-getgrouplist Force using getgrouplist on patched glibc systems [[no]]])
> +if test "x$with_getgrouplist" == "xyes"; then
"==" is only valid for the bash. For portable programs, please use "=".
> + AC_CHECK_FUNCS([getgrouplist])
> +else
> + AC_MSG_CHECKING([for glibc version])
> + AC_LINK_IFELSE([
> + #include <gnu/libc-version.h>
> + #include <stdio.h>
> +int main(void) {
> + return puts(gnu_get_libc_version());
> +}
> + ], [
> + mc_glibc_version=`./conftest$ac_exeext`
> + if [ strverscmp(${mc_glibc_version}, "2.3.3") >= 0 ]; then
Have you tried to run this patch? You're in the shell here, and the >=
operator is interpreted as redirection.
> + AC_CHECK_FUNCS([getgrouplist])
> + fi
> + AC_MSG_RESULT([${mc_glibc_version}])
> + ], [
> + AC_CHECK_FUNCS([getgrouplist])
> + AC_MSG_RESULT([none])
> + ])
> +fi
Roland
More information about the mc-devel
mailing list