+2009-04-20 Nicolas François <nicolas.francois@centraliens.net>
+
+ * libmisc/hushed.c, lib/prototypes.h, src/login.c: Change the
+ hushed() prototype to take a username instead of a passwd
+ structure in argument. The passwd entry is retrieved withing
+ hushed().
+
2009-04-20 Nicolas François <nicolas.francois@centraliens.net>
* libmisc/setugid.c: Updated comments.
extern struct group *__gr_dup (const struct group *grent);
/* hushed.c */
-extern bool hushed (const struct passwd *pw);
+extern bool hushed (const char *username);
/* audit_help.c */
#ifdef WITH_AUDIT
* Copyright (c) 1991 - 1993, Chip Rosenthal
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
* Copyright (c) 2003 - 2005, Tomasz Kłoczko
- * Copyright (c) 2008 , Nicolas François
+ * Copyright (c) 2008 - 2009, Nicolas François
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* Look in the hushed-logins file (or user's home directory) to see
* if the user is to receive the login-time messages.
*/
-bool hushed (const struct passwd *pw)
+bool hushed (const char *username)
{
+ const struct passwd *pw;
char *hushfile;
char buf[BUFSIZ];
bool found;
return false;
}
+ pw = getspnam (username);
+ if (NULL == pw) {
+ return false;
+ }
+
/*
* If this is not a fully rooted path then see if the
* file exists in the user's home directory.
retcode = pam_setcred (pamh, PAM_ESTABLISH_CRED);
PAM_FAIL_CHECK;
- retcode = pam_open_session (pamh, hushed (&pwent) ? PAM_SILENT : 0);
+ retcode = pam_open_session (pamh, hushed (username) ? PAM_SILENT : 0);
PAM_FAIL_CHECK;
#else /* ! USE_PAM */
(void) bindtextdomain (PACKAGE, LOCALEDIR);
(void) textdomain (PACKAGE);
- if (!hushed (&pwent)) {
+ if (!hushed (username)) {
addenv ("HUSHLOGIN=FALSE", NULL);
/*
* pam_unix, pam_mail and pam_lastlog should take care of