From 76727c324d60d74861c87af9db646922c524022f Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Sat, 16 Nov 2024 14:02:08 +0100 Subject: [PATCH] configure.ac, lib/: Assume initgroups(3) exists It's available in every system I checked: glibc,musl,{Free,Net,Open}BSD. Signed-off-by: Alejandro Colomar --- configure.ac | 2 +- lib/age.c | 2 +- lib/prototypes.h | 2 +- lib/setugid.c | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index c6cdf8f23..4e31d5712 100644 --- a/configure.ac +++ b/configure.ac @@ -48,7 +48,7 @@ AC_CHECK_HEADER([shadow.h],,[AC_MSG_ERROR([You need a libc with shadow.h])]) AC_CHECK_FUNCS(arc4random_buf futimes \ getentropy getrandom getspnam getusershell \ - initgroups lckpwdf lutimes \ + lckpwdf lutimes \ updwtmpx innetgr \ getspnam_r \ rpmatch \ diff --git a/lib/age.c b/lib/age.c index 72a13eab5..ff2aebe2b 100644 --- a/lib/age.c +++ b/lib/age.c @@ -106,7 +106,7 @@ int expire (const struct passwd *pw, /*@null@*/const struct spwd *sp) * passwd to work just like it would had they executed * it from the command line while logged in. */ -#if defined(HAVE_INITGROUPS) && ! defined(USE_PAM) +#if !defined(USE_PAM) if (setup_uid_gid (pw, false) != 0) #else if (setup_uid_gid (pw) != 0) diff --git a/lib/prototypes.h b/lib/prototypes.h index 71bea819c..f85c14663 100644 --- a/lib/prototypes.h +++ b/lib/prototypes.h @@ -384,7 +384,7 @@ extern int del_seuser(const char *login_name); /* setugid.c */ extern int setup_groups (const struct passwd *info); extern int change_uid (const struct passwd *info); -#if (defined HAVE_INITGROUPS) && (! defined USE_PAM) +#if !defined(USE_PAM) extern int setup_uid_gid (const struct passwd *info, bool is_console); #else extern int setup_uid_gid (const struct passwd *info); diff --git a/lib/setugid.c b/lib/setugid.c index 6dbe38ee1..cfe63e005 100644 --- a/lib/setugid.c +++ b/lib/setugid.c @@ -47,7 +47,7 @@ int setup_groups (const struct passwd *info) closelog (); return -1; } -#ifdef HAVE_INITGROUPS + /* * For systems which support multiple concurrent groups, go get * the group set from the /etc/group file. @@ -60,7 +60,7 @@ int setup_groups (const struct passwd *info) closelog (); return -1; } -#endif + return 0; } @@ -96,7 +96,7 @@ int change_uid (const struct passwd *info) * Returns 0 on success, or -1 on failure. */ -#if defined (HAVE_INITGROUPS) && ! (defined USE_PAM) +#if !defined(USE_PAM) int setup_uid_gid (const struct passwd *info, bool is_console) #else int setup_uid_gid (const struct passwd *info) @@ -106,7 +106,7 @@ int setup_uid_gid (const struct passwd *info) return -1; } -#if defined (HAVE_INITGROUPS) && ! defined (USE_PAM) +#if !defined(USE_PAM) if (is_console) { const char *cp = getdef_str ("CONSOLE_GROUPS"); @@ -114,7 +114,7 @@ int setup_uid_gid (const struct passwd *info) perror ("Warning: add_groups"); } } -#endif /* HAVE_INITGROUPS && !USE_PAM*/ +#endif // !USE_PAM if (change_uid (info) < 0) { return -1;