$OpenBSD: patch-src_tac_c,v 1.1.1.1 2001/04/14 00:46:07 lebel Exp $ --- src/tac.c.orig Sun Jul 4 05:59:25 1999 +++ src/tac.c Wed Apr 4 09:34:31 2001 @@ -426,22 +426,19 @@ save_stdin (FILE **g_tmp, char **g_tempf template = xmalloc (strlen (tempdir) + 11); } sprintf (template, "%s/tacXXXXXX", tempdir); - tempfile = mktemp (template); + fd = mkstemp (template); - /* Open temporary file exclusively, to foil a common - denial-of-service attack. */ - fd = open (tempfile, O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600); if (fd == -1) - error (EXIT_FAILURE, errno, "%s", tempfile); + error (EXIT_FAILURE, errno, "%s", template); tmp = fdopen (fd, "w+"); if (tmp == NULL) - error (EXIT_FAILURE, errno, "%s", tempfile); + error (EXIT_FAILURE, errno, "%s", template); #if DONT_UNLINK_WHILE_OPEN - record_tempfile (tempfile, tmp); + record_tempfile (template, tmp); #else - unlink (tempfile); + unlink (template); #endif while (1) @@ -457,13 +454,13 @@ save_stdin (FILE **g_tmp, char **g_tempf } if (ferror (tmp) || fflush (tmp) == EOF) - error (EXIT_FAILURE, errno, "%s", tempfile); + error (EXIT_FAILURE, errno, "%s", template); rewind (tmp); SET_BINARY (fileno (tmp)); *g_tmp = tmp; - *g_tempfile = tempfile; + *g_tempfile = template; } /* Print the standard input in reverse, saving it to temporary