diff options
author | tim <tim> | 2002-02-25 01:56:46 +0000 |
---|---|---|
committer | tim <tim> | 2002-02-25 01:56:46 +0000 |
commit | 163e1eab1db5cd883ac8ec4b018dcc77f4aba69d (patch) | |
tree | b94a5f42a0ee3707a870a64a3a5860539a08652e | |
parent | b99b5a1c1e0dc7b446847cdf40ff981a8518579a (diff) | |
download | openssh-163e1eab1db5cd883ac8ec4b018dcc77f4aba69d.tar.gz |
[loginrec.c session.c sshlogin.c sshlogin.h] Bug 84
patch by wknox@mitre.org (William Knox).
[sshlogin.h] declare record_utmp_only for session.c
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | loginrec.c | 10 | ||||
-rw-r--r-- | session.c | 2 | ||||
-rw-r--r-- | sshlogin.c | 4 | ||||
-rw-r--r-- | sshlogin.h | 7 |
5 files changed, 17 insertions, 11 deletions
@@ -4,6 +4,9 @@ coming). - (bal) Part two.. Drop unused AIX header, fix up missing char *cp. All that is left is handling aix_usrinfo(). + - (tim) [loginrec.c session.c sshlogin.c sshlogin.h] Bug 84 + patch by wknox@mitre.org (William Knox). + [sshlogin.h] declare record_utmp_only for session.c 20020221 - (bal) Minor session.c fixup for cygwin. mispelt 'is_winnt' variable. @@ -7663,4 +7666,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1872 2002/02/24 20:42:46 mouring Exp $ +$Id: ChangeLog,v 1.1873 2002/02/25 01:56:46 tim Exp $ @@ -163,7 +163,7 @@ #include "log.h" #include "atomicio.h" -RCSID("$Id: loginrec.c,v 1.38 2001/10/30 02:50:40 tim Exp $"); +RCSID("$Id: loginrec.c,v 1.39 2002/02/25 01:56:47 tim Exp $"); #ifdef HAVE_UTIL_H # include <util.h> @@ -701,6 +701,8 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx) line_stripname(utx->ut_line, li->line, sizeof(utx->ut_line)); set_utmpx_time(li, utx); utx->ut_pid = li->pid; + /* strncpy(): Don't necessarily want null termination */ + strncpy(utx->ut_name, li->username, MIN_SIZEOF(utx->ut_name, li->username)); if (li->type == LTYPE_LOGOUT) return; @@ -710,8 +712,6 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx) * for logouts. */ - /* strncpy(): Don't necessarily want null termination */ - strncpy(utx->ut_name, li->username, MIN_SIZEOF(utx->ut_name, li->username)); # ifdef HAVE_HOST_IN_UTMPX strncpy(utx->ut_host, li->hostname, MIN_SIZEOF(utx->ut_host, li->hostname)); # endif @@ -942,9 +942,7 @@ utmpx_perform_logout(struct logininfo *li) { struct utmpx utx; - memset(&utx, '\0', sizeof(utx)); - set_utmpx_time(li, &utx); - line_stripname(utx.ut_line, li->line, sizeof(utx.ut_line)); + construct_utmpx(li, &utx); # ifdef HAVE_ID_IN_UTMPX line_abbrevname(utx.ut_id, li->line, sizeof(utx.ut_id)); # endif @@ -1677,7 +1677,7 @@ session_pty_cleanup(void *session) /* Record that the user has logged out. */ if (s->pid != 0) - record_logout(s->pid, s->tty); + record_logout(s->pid, s->tty, s->pw->pw_name); /* Release the pseudo-tty. */ pty_release(s->tty); @@ -94,11 +94,11 @@ record_utmp_only(pid_t pid, const char *ttyname, const char *user, /* Records that the user has logged out. */ void -record_logout(pid_t pid, const char *ttyname) +record_logout(pid_t pid, const char *ttyname, const char *user) { struct logininfo *li; - li = login_alloc_entry(pid, NULL, NULL, ttyname); + li = login_alloc_entry(pid, user, NULL, ttyname); login_logout(li); login_free_entry(li); } @@ -17,7 +17,12 @@ void record_login(pid_t, const char *, const char *, uid_t, const char *, struct sockaddr *); -void record_logout(pid_t, const char *); +void record_logout(pid_t, const char *, const char *); u_long get_last_login_time(uid_t, const char *, char *, u_int); +#ifdef LOGIN_NEEDS_UTMPX +void record_utmp_only(pid_t, const char *, const char *, const char *, + struct sockaddr *); +#endif + #endif |