Bugzilla – Attachment 1946 Details for
Bug 1817
lastlog is not recorded with the big uid
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
/home/djm/sshd-loginrec-types.diff
sshd-loginrec-types.diff (text/plain), 4.32 KB, created by
Damien Miller
on 2010-11-05 10:48:27 AEDT
(
hide
)
Description:
/home/djm/sshd-loginrec-types.diff
Filename:
MIME Type:
Creator:
Damien Miller
Created:
2010-11-05 10:48:27 AEDT
Size:
4.32 KB
patch
obsolete
>Index: loginrec.c >=================================================================== >RCS file: /var/cvs/openssh/loginrec.c,v >retrieving revision 1.86 >diff -u -p -r1.86 loginrec.c >--- loginrec.c 9 Apr 2010 08:13:27 -0000 1.86 >+++ loginrec.c 4 Nov 2010 23:47:05 -0000 >@@ -273,7 +273,7 @@ login_logout(struct logininfo *li) > * try to retrieve lastlog information from wtmp/wtmpx. > */ > unsigned int >-login_get_lastlog_time(const int uid) >+login_get_lastlog_time(const uid_t uid) > { > struct logininfo li; > >@@ -297,7 +297,7 @@ login_get_lastlog_time(const int uid) > * 0 on failure (will use OpenSSH's logging facilities for diagnostics) > */ > struct logininfo * >-login_get_lastlog(struct logininfo *li, const int uid) >+login_get_lastlog(struct logininfo *li, const uid_t uid) > { > struct passwd *pw; > >@@ -311,7 +311,8 @@ login_get_lastlog(struct logininfo *li, > */ > pw = getpwuid(uid); > if (pw == NULL) >- fatal("%s: Cannot find account for uid %i", __func__, uid); >+ fatal("%s: Cannot find account for uid %ld", __func__, >+ (long)uid); > > /* No MIN_SIZEOF here - we absolutely *must not* truncate the > * username (XXX - so check for trunc!) */ >@@ -335,7 +336,7 @@ login_get_lastlog(struct logininfo *li, > * allocation fails, the program halts. > */ > struct >-logininfo *login_alloc_entry(int pid, const char *username, >+logininfo *login_alloc_entry(pid_t pid, const char *username, > const char *hostname, const char *line) > { > struct logininfo *newli; >@@ -363,7 +364,7 @@ login_free_entry(struct logininfo *li) > * Returns: 1 > */ > int >-login_init_entry(struct logininfo *li, int pid, const char *username, >+login_init_entry(struct logininfo *li, pid_t pid, const char *username, > const char *hostname, const char *line) > { > struct passwd *pw; >@@ -1496,7 +1497,7 @@ lastlog_openseek(struct logininfo *li, i > > if (S_ISREG(st.st_mode)) { > /* find this uid's offset in the lastlog file */ >- offset = (off_t) ((long)li->uid * sizeof(struct lastlog)); >+ offset = (off_t) ((u_long)li->uid * sizeof(struct lastlog)); > > if (lseek(*fd, offset, SEEK_SET) != offset) { > logit("%s: %s->lseek(): %s", __func__, >Index: loginrec.h >=================================================================== >RCS file: /var/cvs/openssh/loginrec.h,v >retrieving revision 1.13 >diff -u -p -r1.13 loginrec.h >--- loginrec.h 22 Jun 2010 05:02:39 -0000 1.13 >+++ loginrec.h 4 Nov 2010 23:45:14 -0000 >@@ -63,8 +63,8 @@ struct logininfo { > char progname[LINFO_PROGSIZE]; /* name of program (for PAM) */ > int progname_null; > short int type; /* type of login (LTYPE_*) */ >- int pid; /* PID of login process */ >- int uid; /* UID of this user */ >+ pid_t pid; /* PID of login process */ >+ uid_t uid; /* UID of this user */ > char line[LINFO_LINESIZE]; /* tty/pty name */ > char username[LINFO_NAMESIZE]; /* login username */ > char hostname[LINFO_HOSTSIZE]; /* remote hostname */ >@@ -86,12 +86,12 @@ struct logininfo { > /** 'public' functions */ > > /* construct a new login entry */ >-struct logininfo *login_alloc_entry(int pid, const char *username, >+struct logininfo *login_alloc_entry(pid_t pid, const char *username, > const char *hostname, const char *line); > /* free a structure */ > void login_free_entry(struct logininfo *li); > /* fill out a pre-allocated structure with useful information */ >-int login_init_entry(struct logininfo *li, int pid, const char *username, >+int login_init_entry(struct logininfo *li, pid_t pid, const char *username, > const char *hostname, const char *line); > /* place the current time in a logininfo struct */ > void login_set_current_time(struct logininfo *li); >@@ -117,9 +117,9 @@ void login_set_addr(struct logininfo *li > * lastlog retrieval functions > */ > /* lastlog *entry* functions fill out a logininfo */ >-struct logininfo *login_get_lastlog(struct logininfo *li, const int uid); >+struct logininfo *login_get_lastlog(struct logininfo *li, const uid_t uid); > /* lastlog *time* functions return time_t equivalent (uint) */ >-unsigned int login_get_lastlog_time(const int uid); >+unsigned int login_get_lastlog_time(const uid_t uid); > > /* produce various forms of the line filename */ > char *line_fullname(char *dst, const char *src, u_int dstsize);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
dtucker
:
ok+
Actions:
View
|
Diff
Attachments on
bug 1817
:
1924
| 1946