Subordinate IDs require 32bit uid_t/gid_t

* configure.in: Check if sizeof uid_t and gid_t is larger than 32
	bit to support subordinate IDs.
This commit is contained in:
Nicolas François 2013-08-14 20:21:32 +02:00
parent 0f26591422
commit 1a8d386288
2 changed files with 25 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2013-08-13 Nicolas François <nicolas.francois@centraliens.net>
* configure.in: Check if sizeof uid_t and gid_t is larger than 32
bit to support subordinate IDs.
2013-08-13 Nicolas François <nicolas.francois@centraliens.net> 2013-08-13 Nicolas François <nicolas.francois@centraliens.net>
* lib/subordinateio.c: Avoid dead branches. * lib/subordinateio.c: Avoid dead branches.

View File

@ -244,7 +244,7 @@ AC_ARG_ENABLE(subordinate-ids,
[AC_HELP_STRING([--enable-subordinate-ids], [AC_HELP_STRING([--enable-subordinate-ids],
[support subordinate ids @<:@default=yes@:>@])], [support subordinate ids @<:@default=yes@:>@])],
[enable_subids="${enableval}"], [enable_subids="${enableval}"],
[enable_subids="yes"] [enable_subids="maybe"]
) )
AC_ARG_WITH(audit, AC_ARG_WITH(audit,
@ -331,12 +331,28 @@ if test "$enable_man" = "yes"; then
fi fi
AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test "x$enable_man" != "xno") AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test "x$enable_man" != "xno")
if test "$enable_subids" = "yes"; then if test "$enable_subids" != "no"; then
dnl dnl
dnl FIXME: check if 32 bit UIDs/GIDs are supported by libc dnl FIXME: check if 32 bit UIDs/GIDs are supported by libc
dnl dnl
AC_DEFINE(ENABLE_SUBIDS, 1, [Define to support the subordinate IDs.]) AC_RUN_IFELSE([AC_LANG_SOURCE([
enable_subids="yes" #include <sys/types.h>
int main(void) {
uid_t u;
gid_t g;
return (sizeof u < 4) || (sizeof g < 4);
}
])], [id32bit="yes"], [id32bit="no"])
if test "x$id32bit" = "xyes"; then
AC_DEFINE(ENABLE_SUBIDS, 1, [Define to support the subordinate IDs.])
enable_subids="yes"
else
if test "x$enable_subids" = "xyes"; then
AC_MSG_ERROR([Cannot enable support the subordinate IDs on systems where gid_t or uid_t has less than 32 bits])
fi
enable_subids="no"
fi
fi fi
AM_CONDITIONAL(ENABLE_SUBIDS, test "x$enable_subids" != "xno") AM_CONDITIONAL(ENABLE_SUBIDS, test "x$enable_subids" != "xno")