- (djm) [loginrec.c loginrec.h] Use correct uid_t/pid_t types instead of
int. Should fix bz#1817 cleanly; ok dtucker@
This commit is contained in:
parent
0733121194
commit
34ee4204c6
|
@ -1,4 +1,6 @@
|
||||||
20101105
|
20101105
|
||||||
|
- (djm) [loginrec.c loginrec.h] Use correct uid_t/pid_t types instead of
|
||||||
|
int. Should fix bz#1817 cleanly; ok dtucker@
|
||||||
- OpenBSD CVS Sync
|
- OpenBSD CVS Sync
|
||||||
- djm@cvs.openbsd.org 2010/09/22 12:26:05
|
- djm@cvs.openbsd.org 2010/09/22 12:26:05
|
||||||
[regress/Makefile regress/kextype.sh]
|
[regress/Makefile regress/kextype.sh]
|
||||||
|
|
13
loginrec.c
13
loginrec.c
|
@ -273,7 +273,7 @@ login_logout(struct logininfo *li)
|
||||||
* try to retrieve lastlog information from wtmp/wtmpx.
|
* try to retrieve lastlog information from wtmp/wtmpx.
|
||||||
*/
|
*/
|
||||||
unsigned int
|
unsigned int
|
||||||
login_get_lastlog_time(const int uid)
|
login_get_lastlog_time(const uid_t uid)
|
||||||
{
|
{
|
||||||
struct logininfo li;
|
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)
|
* 0 on failure (will use OpenSSH's logging facilities for diagnostics)
|
||||||
*/
|
*/
|
||||||
struct logininfo *
|
struct logininfo *
|
||||||
login_get_lastlog(struct logininfo *li, const int uid)
|
login_get_lastlog(struct logininfo *li, const uid_t uid)
|
||||||
{
|
{
|
||||||
struct passwd *pw;
|
struct passwd *pw;
|
||||||
|
|
||||||
|
@ -311,7 +311,8 @@ login_get_lastlog(struct logininfo *li, const int uid)
|
||||||
*/
|
*/
|
||||||
pw = getpwuid(uid);
|
pw = getpwuid(uid);
|
||||||
if (pw == NULL)
|
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
|
/* No MIN_SIZEOF here - we absolutely *must not* truncate the
|
||||||
* username (XXX - so check for trunc!) */
|
* username (XXX - so check for trunc!) */
|
||||||
|
@ -335,7 +336,7 @@ login_get_lastlog(struct logininfo *li, const int uid)
|
||||||
* allocation fails, the program halts.
|
* allocation fails, the program halts.
|
||||||
*/
|
*/
|
||||||
struct
|
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)
|
const char *hostname, const char *line)
|
||||||
{
|
{
|
||||||
struct logininfo *newli;
|
struct logininfo *newli;
|
||||||
|
@ -363,7 +364,7 @@ login_free_entry(struct logininfo *li)
|
||||||
* Returns: 1
|
* Returns: 1
|
||||||
*/
|
*/
|
||||||
int
|
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)
|
const char *hostname, const char *line)
|
||||||
{
|
{
|
||||||
struct passwd *pw;
|
struct passwd *pw;
|
||||||
|
@ -1496,7 +1497,7 @@ lastlog_openseek(struct logininfo *li, int *fd, int filemode)
|
||||||
|
|
||||||
if (S_ISREG(st.st_mode)) {
|
if (S_ISREG(st.st_mode)) {
|
||||||
/* find this uid's offset in the lastlog file */
|
/* 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) {
|
if (lseek(*fd, offset, SEEK_SET) != offset) {
|
||||||
logit("%s: %s->lseek(): %s", __func__,
|
logit("%s: %s->lseek(): %s", __func__,
|
||||||
|
|
12
loginrec.h
12
loginrec.h
|
@ -63,8 +63,8 @@ struct logininfo {
|
||||||
char progname[LINFO_PROGSIZE]; /* name of program (for PAM) */
|
char progname[LINFO_PROGSIZE]; /* name of program (for PAM) */
|
||||||
int progname_null;
|
int progname_null;
|
||||||
short int type; /* type of login (LTYPE_*) */
|
short int type; /* type of login (LTYPE_*) */
|
||||||
int pid; /* PID of login process */
|
pid_t pid; /* PID of login process */
|
||||||
int uid; /* UID of this user */
|
uid_t uid; /* UID of this user */
|
||||||
char line[LINFO_LINESIZE]; /* tty/pty name */
|
char line[LINFO_LINESIZE]; /* tty/pty name */
|
||||||
char username[LINFO_NAMESIZE]; /* login username */
|
char username[LINFO_NAMESIZE]; /* login username */
|
||||||
char hostname[LINFO_HOSTSIZE]; /* remote hostname */
|
char hostname[LINFO_HOSTSIZE]; /* remote hostname */
|
||||||
|
@ -86,12 +86,12 @@ struct logininfo {
|
||||||
/** 'public' functions */
|
/** 'public' functions */
|
||||||
|
|
||||||
/* construct a new login entry */
|
/* 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);
|
const char *hostname, const char *line);
|
||||||
/* free a structure */
|
/* free a structure */
|
||||||
void login_free_entry(struct logininfo *li);
|
void login_free_entry(struct logininfo *li);
|
||||||
/* fill out a pre-allocated structure with useful information */
|
/* 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);
|
const char *hostname, const char *line);
|
||||||
/* place the current time in a logininfo struct */
|
/* place the current time in a logininfo struct */
|
||||||
void login_set_current_time(struct logininfo *li);
|
void login_set_current_time(struct logininfo *li);
|
||||||
|
@ -117,9 +117,9 @@ void login_set_addr(struct logininfo *li, const struct sockaddr *sa,
|
||||||
* lastlog retrieval functions
|
* lastlog retrieval functions
|
||||||
*/
|
*/
|
||||||
/* lastlog *entry* functions fill out a logininfo */
|
/* 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) */
|
/* 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 */
|
/* produce various forms of the line filename */
|
||||||
char *line_fullname(char *dst, const char *src, u_int dstsize);
|
char *line_fullname(char *dst, const char *src, u_int dstsize);
|
||||||
|
|
Loading…
Reference in New Issue