]> granicus.if.org Git - linux-pam/commitdiff
Relevant BUGIDs: 125704, 124930
authorSteve Langasek <vorlon@debian.org>
Wed, 13 Dec 2000 23:31:09 +0000 (23:31 +0000)
committerSteve Langasek <vorlon@debian.org>
Wed, 13 Dec 2000 23:31:09 +0000 (23:31 +0000)
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
modules/pam_unix/support.c

index fd358b2b4d6b72a18c51a9de2f8835e45d04a3c9..34ab9686011972a3f5d60c44cdb7de2625798d88 100644 (file)
--- 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)
index a0f2c52d7e0b6aec3c9af76be2da0842b65edd5c..db147b31da285a85f212e198a2c7f6c96c0b2c3a 100644 (file)
@@ -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();