-/* $OpenBSD: at.c,v 1.7 1997/03/01 23:40:09 millert Exp $ */
+/* $OpenBSD: at.c,v 1.8 1997/03/02 19:59:15 millert Exp $ */
/* $NetBSD: at.c,v 1.4 1995/03/25 18:13:31 glass Exp $ */
/*
/* File scope variables */
#ifndef lint
-static char rcsid[] = "$OpenBSD: at.c,v 1.7 1997/03/01 23:40:09 millert Exp $";
+static char rcsid[] = "$OpenBSD: at.c,v 1.8 1997/03/02 19:59:15 millert Exp $";
#endif
char *no_export[] =
return (getcwd(path, sizeof(path)));
}
-/* XXX - this code sucks! */
static int
nextjob()
{
if ((jobno = nextjob()) == EOF)
perr("Cannot generate job number");
- /* XXX - use snprintf */
- (void)sprintf(ppos, "%c%5x%8x", queue, jobno, (unsigned) (runtimer/60));
+ (void)snprintf(ppos, sizeof(atfile) - (ppos - atfile),
+ "%c%5x%8x", queue, jobno, (unsigned) (runtimer/60));
for (ap = ppos; *ap != '\0'; ap++)
if (*ap == ' ')
* their r bit. Yes, this is a kluge.
*/
cmask = umask(S_IRUSR | S_IWUSR | S_IXUSR);
- /* XXX - use open(2) not creat() */
- if ((fdes = creat(atfile, O_WRONLY)) == -1)
+ if ((fdes = open(atfile, O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR)) == -1)
perr("Cannot create atjob file");
if ((fd2 = dup(fdes)) < 0)