* lib/prototypes.h, libmisc/addgrps.c: restrict add_groups() to

ifndef USE_PAM.
	* lib/prototypes.h: Remove the declaration of add_cons_grps(). The
	function does not exist.
	* libmisc/age.c (setup_uid_gid): is_console is never set ifndef
	USE_PAM. Change the prototype of setup_uid_gid() when USE_PAM is
	not defined. This permits to remove add_groups from PAM builds.
	setup_uid_gid is already subject to HAVE_INITGROUPS.
	* libmisc/pwd2spwd.c (pwd_to_spwd): pwd_to_spwd() is not used in
	PAM builds.
This commit is contained in:
nekral-guest 2009-04-05 22:29:42 +00:00
parent 021066a980
commit a51954203e
5 changed files with 39 additions and 6 deletions

View File

@ -1,3 +1,16 @@
2009-04-06 Nicolas François <nicolas.francois@centraliens.net>
* lib/prototypes.h, libmisc/addgrps.c: restrict add_groups() to
ifndef USE_PAM.
* lib/prototypes.h: Remove the declaration of add_cons_grps(). The
function does not exist.
* libmisc/age.c (setup_uid_gid): is_console is never set ifndef
USE_PAM. Change the prototype of setup_uid_gid() when USE_PAM is
not defined. This permits to remove add_groups from PAM builds.
setup_uid_gid is already subject to HAVE_INITGROUPS.
* libmisc/pwd2spwd.c (pwd_to_spwd): pwd_to_spwd() is not used in
PAM builds.
2009-04-05 Nicolas François <nicolas.francois@centraliens.net> 2009-04-05 Nicolas François <nicolas.francois@centraliens.net>
* src/passwd.c: do_update_age is only used ifndef USE_PAM. Make it * src/passwd.c: do_update_age is only used ifndef USE_PAM. Make it

View File

@ -60,8 +60,9 @@
extern char *Prog; extern char *Prog;
/* addgrps.c */ /* addgrps.c */
#if defined (HAVE_SETGROUPS) && ! defined (USE_PAM)
extern int add_groups (const char *); extern int add_groups (const char *);
extern void add_cons_grps (void); #endif
/* age.c */ /* age.c */
extern void agecheck (const struct passwd *, const struct spwd *); extern void agecheck (const struct passwd *, const struct spwd *);
@ -231,7 +232,9 @@ extern void do_pam_passwd (const char *user, bool silent, bool change_expired);
extern bool isttytime (const char *, const char *, time_t); extern bool isttytime (const char *, const char *, time_t);
/* pwd2spwd.c */ /* pwd2spwd.c */
#ifdef USE_PAM
extern struct spwd *pwd_to_spwd (const struct passwd *); extern struct spwd *pwd_to_spwd (const struct passwd *);
#endif
/* pwdcheck.c */ /* pwdcheck.c */
#ifndef USE_PAM #ifndef USE_PAM
@ -259,7 +262,11 @@ extern char *crypt_make_salt (const char *meth, void *arg);
/* setugid.c */ /* setugid.c */
extern int setup_groups (const struct passwd *info); extern int setup_groups (const struct passwd *info);
extern int change_uid (const struct passwd *info); extern int change_uid (const struct passwd *info);
#if (defined HAVE_INITGROUPS) && (! defined USE_PAM)
extern int setup_uid_gid (const struct passwd *info, bool is_console); extern int setup_uid_gid (const struct passwd *info, bool is_console);
#else
extern int setup_uid_gid (const struct passwd *info);
#endif
/* setup.c */ /* setup.c */
extern void setup (struct passwd *); extern void setup (struct passwd *);

View File

@ -32,7 +32,7 @@
#include <config.h> #include <config.h>
#ifdef HAVE_SETGROUPS #if defined (HAVE_SETGROUPS) && ! defined (USE_PAM)
#include "prototypes.h" #include "prototypes.h"
#include "defines.h" #include "defines.h"
@ -121,5 +121,7 @@ int add_groups (const char *list)
return 0; return 0;
} }
#endif #else /* HAVE_SETGROUPS && !USE_PAM */
extern int errno; /* warning: ANSI C forbids an empty source file */
#endif /* HAVE_SETGROUPS && !USE_PAM */

View File

@ -60,7 +60,7 @@ int expire (const struct passwd *pw, const struct spwd *sp)
pid_t pid; pid_t pid;
if (NULL == sp) { if (NULL == sp) {
sp = pwd_to_spwd (pw); return 0;
} }
/* /*
@ -126,7 +126,12 @@ int expire (const struct passwd *pw, const struct spwd *sp)
* passwd to work just like it would had they executed * passwd to work just like it would had they executed
* it from the command line while logged in. * it from the command line while logged in.
*/ */
if (setup_uid_gid (pw, 0) != 0) { #if defined(HAVE_INITGROUPS) && ! defined(USE_PAM)
if (setup_uid_gid (pw, false) != 0)
#else
if (setup_uid_gid (pw) != 0)
#endif
{
_exit (126); _exit (126);
} }
@ -161,7 +166,7 @@ void agecheck (const struct passwd *pw, const struct spwd *sp)
long remain; long remain;
if (NULL == sp) { if (NULL == sp) {
sp = pwd_to_spwd (pw); return;
} }
/* /*

View File

@ -34,6 +34,8 @@
#ident "$Id$" #ident "$Id$"
#ifndef USE_PAM
#include <sys/types.h> #include <sys/types.h>
#include "prototypes.h" #include "prototypes.h"
#include "defines.h" #include "defines.h"
@ -83,3 +85,7 @@ struct spwd *pwd_to_spwd (const struct passwd *pw)
return &sp; return &sp;
} }
#else /* USE_PAM */
extern int errno; /* warning: ANSI C forbids an empty source file */
#endif /* !USE_PAM */