From 64adffdf31943da265afc4f8d82de49038fafc05 Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Wed, 13 Dec 2000 23:31:09 +0000 Subject: [PATCH] Relevant BUGIDs: 125704, 124930 Purpose of commit: portable handling of utmp in pam_unix Commit summary: --------------- Fixes problem with PAM_getlogin() on Solaris (and hopefully other Unices), as per David Lee's report. --- CHANGELOG | 2 ++ modules/pam_unix/support.c | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fd358b2b..34ab9686 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -35,6 +35,8 @@ Where you should replace XXXXX with a bug-id. 0.74: please submit patches for this section with actual code/doc patches! +* improved portability of pam_unix by eliminating Linux-specific utmp + defines in PAM_getlogin() (Bug 125704 - vorlon) * removed static variables from pam_tally (Bug 117434 - agmorgan) * added copyright message to pam_access module from original logdaemon sources (Bug 125022 - agmorgan) diff --git a/modules/pam_unix/support.c b/modules/pam_unix/support.c index a0f2c52d..db147b31 100644 --- a/modules/pam_unix/support.c +++ b/modules/pam_unix/support.c @@ -94,14 +94,14 @@ int _make_remark(pam_handle_t * pamh, unsigned int ctrl } /* - * Beacause getlogin() is fucked in a weird way, and - * sometimes it just don't work, we reimplement it here. + * Beacause getlogin() is braindead and sometimes it just + * doesn't work, we reimplement it here. */ char *PAM_getlogin(void) { struct utmp *ut, line; char *curr_tty, *retval; - static char curr_user[UT_NAMESIZE + 4]; + static char curr_user[sizeof(ut->ut_user) + 4]; retval = NULL; @@ -112,7 +112,7 @@ char *PAM_getlogin(void) setutent(); strncpy(line.ut_line, curr_tty, sizeof line.ut_line); if ((ut = getutline(&line)) != NULL) { - strncpy(curr_user, ut->ut_user, UT_NAMESIZE); + strncpy(curr_user, ut->ut_user, sizeof(ut->ut_user)); retval = curr_user; } endutent(); -- 2.40.0