summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorbitblt <bitblt@cvs.openbsd.org>1996-12-07 08:18:39 +0000
committerbitblt <bitblt@cvs.openbsd.org>1996-12-07 08:18:39 +0000
commit5aecc0c00728add21a2bcc0e0f4b3fbed9579e60 (patch)
treecca4ea9d279b28992e4227d4262545ffc3cfc44b /usr.bin
parent957ca030fda5e98a1fb03ebcef50833ae3520c3c (diff)
Improved temporary file handling.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/xstr/xstr.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/usr.bin/xstr/xstr.c b/usr.bin/xstr/xstr.c
index 7ba2a699eeb..b19f1a85fd8 100644
--- a/usr.bin/xstr/xstr.c
+++ b/usr.bin/xstr/xstr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xstr.c,v 1.3 1996/09/16 02:26:20 deraadt Exp $ */
+/* $OpenBSD: xstr.c,v 1.4 1996/12/07 08:18:38 bitblt Exp $ */
/* $NetBSD: xstr.c,v 1.5 1994/12/24 16:57:59 cgd Exp $ */
/*
@@ -44,7 +44,7 @@ static char copyright[] =
#if 0
static char sccsid[] = "@(#)xstr.c 8.1 (Berkeley) 6/9/93";
#endif
-static char rcsid[] = "$OpenBSD: xstr.c,v 1.3 1996/09/16 02:26:20 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: xstr.c,v 1.4 1996/12/07 08:18:38 bitblt Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -86,6 +86,7 @@ main(argc, argv)
char *argv[];
{
int c;
+ int fdesc;
while ((c = getopt(argc, argv, "-cvl:")) != -1)
switch (c) {
@@ -115,8 +116,21 @@ main(argc, argv)
signal(SIGINT, onintr);
if (cflg || argc == 0 && !readstd)
inithash();
- else
- strings = mktemp(strdup(_PATH_TMPFILE));
+ else {
+ strings = strdup (_PATH_TMPFILE);
+ if (strings == NULL) {
+ fprintf(stderr, "Unable to allocate memory: %s",
+ strerror (errno));
+ exit(1);
+ }
+ fdesc = mkstemp (strings);
+ if (fdesc < 0) {
+ fprintf(stderr, "Unable to create temporary file.\n");
+ exit(1);
+ }
+ close (fdesc);
+ }
+
while (readstd || argc > 0) {
if (freopen("x.c", "w", stdout) == NULL)
perror("x.c"), exit(1);