* 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().
This commit is contained in:
nekral-guest 2009-04-20 11:48:59 +00:00
parent 87ac185752
commit 1bcf2ffb59
4 changed files with 18 additions and 5 deletions

View File

@ -1,3 +1,10 @@
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.

View File

@ -175,7 +175,7 @@ extern void __gr_set_changed (void);
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

View File

@ -3,7 +3,7 @@
* 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
@ -47,8 +47,9 @@
* 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;
@ -64,6 +65,11 @@ bool hushed (const struct passwd *pw)
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.

View File

@ -847,7 +847,7 @@ int main (int argc, char **argv)
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 */
@ -1184,7 +1184,7 @@ int main (int argc, char **argv)
(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