- Use MAXLOGNAME - 1 instead of UT_NAMESIZE.

- Do not pretend there is something like '/etc/utmp'.
This commit is contained in:
robert 2002-07-22 11:32:16 +00:00
parent 19c3d6304c
commit d1ac4a2ae3

View File

@ -56,13 +56,6 @@ __FBSDID("$FreeBSD$");
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <utmp.h>
#if (MAXLOGNAME-1) > UT_NAMESIZE
#define LOGNAMESIZE UT_NAMESIZE
#else
#define LOGNAMESIZE (MAXLOGNAME-1)
#endif
/* Local headers */
@ -320,15 +313,15 @@ writefile(time_t runtimer, char queue)
if((fp = fdopen(fdes, "w")) == NULL)
panic("cannot reopen atjob file");
/* Get the userid to mail to, first by trying getlogin(), which reads
* /etc/utmp, then from LOGNAME, finally from getpwuid().
/* Get the userid to mail to, first by trying getlogin(),
* then from LOGNAME, finally from getpwuid().
*/
mailname = getlogin();
if (mailname == NULL)
mailname = getenv("LOGNAME");
if ((mailname == NULL) || (mailname[0] == '\0')
|| (strlen(mailname) > LOGNAMESIZE) || (getpwnam(mailname)==NULL))
|| (strlen(mailname) >= MAXLOGNAME) || (getpwnam(mailname)==NULL))
{
pass_entry = getpwuid(real_uid);
if (pass_entry != NULL)
@ -342,7 +335,8 @@ writefile(time_t runtimer, char queue)
perr("cannot open input file");
}
fprintf(fp, "#!/bin/sh\n# atrun uid=%ld gid=%ld\n# mail %*s %d\n",
(long) real_uid, (long) real_gid, LOGNAMESIZE, mailname, send_mail);
(long) real_uid, (long) real_gid, MAXLOGNAME - 1, mailname,
send_mail);
/* Write out the umask at the time of invocation
*/