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-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>
* src/passwd.c: do_update_age is only used ifndef USE_PAM. Make it
extern char *Prog;
/* addgrps.c */
+#if defined (HAVE_SETGROUPS) && ! defined (USE_PAM)
extern int add_groups (const char *);
-extern void add_cons_grps (void);
+#endif
/* age.c */
extern void agecheck (const struct passwd *, const struct spwd *);
extern bool isttytime (const char *, const char *, time_t);
/* pwd2spwd.c */
+#ifdef USE_PAM
extern struct spwd *pwd_to_spwd (const struct passwd *);
+#endif
/* pwdcheck.c */
#ifndef USE_PAM
/* 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)
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 */
extern void setup (struct passwd *);
#include <config.h>
-#ifdef HAVE_SETGROUPS
+#if defined (HAVE_SETGROUPS) && ! defined (USE_PAM)
#include "prototypes.h"
#include "defines.h"
return 0;
}
-#endif
+#else /* HAVE_SETGROUPS && !USE_PAM */
+extern int errno; /* warning: ANSI C forbids an empty source file */
+#endif /* HAVE_SETGROUPS && !USE_PAM */
pid_t pid;
if (NULL == sp) {
- sp = pwd_to_spwd (pw);
+ return 0;
}
/*
* passwd to work just like it would had they executed
* 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);
}
long remain;
if (NULL == sp) {
- sp = pwd_to_spwd (pw);
+ return;
}
/*
#ident "$Id$"
+#ifndef USE_PAM
+
#include <sys/types.h>
#include "prototypes.h"
#include "defines.h"
return &sp;
}
+#else /* USE_PAM */
+extern int errno; /* warning: ANSI C forbids an empty source file */
+#endif /* !USE_PAM */
+