minor compatibility fixes in utmp.h and fixing mismatch with paths.h

the pathnames prefixed with /dev/null/ are guaranteed never to be
valid. the previous use of /dev/null alone was mildly dangerous in
that bad software might attempt to unlink the name when it found a
non-regular file there and create a new file.
This commit is contained in:
Rich Felker
2013-06-27 20:00:29 -04:00
parent 3cd6f5229f
commit 1e2281b835
2 changed files with 10 additions and 4 deletions

View File

@ -27,9 +27,9 @@
#define _PATH_SHELLS "/etc/shells" #define _PATH_SHELLS "/etc/shells"
#define _PATH_TTY "/dev/tty" #define _PATH_TTY "/dev/tty"
#define _PATH_UNIX "/boot/vmlinux" #define _PATH_UNIX "/boot/vmlinux"
#define _PATH_UTMP "/var/run/utmp" #define _PATH_UTMP "/dev/null/utmp"
#define _PATH_VI "/usr/bin/vi" #define _PATH_VI "/usr/bin/vi"
#define _PATH_WTMP "/var/log/wtmp" #define _PATH_WTMP "/dev/null/wtmp"
#define _PATH_LASTLOG "/var/log/lastlog" #define _PATH_LASTLOG "/var/log/lastlog"
#define _PATH_DEV "/dev/" #define _PATH_DEV "/dev/"

View File

@ -19,6 +19,7 @@ struct lastlog {
#define ut_time ut_tv.tv_sec #define ut_time ut_tv.tv_sec
#define ut_name ut_user #define ut_name ut_user
#define ut_addr ut_addr_v6[0]
#define utmp utmpx #define utmp utmpx
#define utmpname(x) (-1) #define utmpname(x) (-1)
@ -31,8 +32,13 @@ void setutent(void);
void updwtmp(const char *, const struct utmp *); void updwtmp(const char *, const struct utmp *);
#define _PATH_UTMP "/dev/null" #define _PATH_UTMP "/dev/null/utmp"
#define _PATH_WTMP "/dev/null" #define _PATH_WTMP "/dev/null/wtmp"
#define UTMP_FILE _PATH_UTMP
#define WTMP_FILE _PATH_WTMP
#define UTMP_FILENAME _PATH_UTMP
#define WTMP_FILENAME _PATH_WTMP
#ifdef __cplusplus #ifdef __cplusplus
} }