From owner-freebsd-audit Sun Jan 9 2: 6:39 2000 Delivered-To: freebsd-audit@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 758) id B81E615275; Sun, 9 Jan 2000 02:06:37 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id A95641CD831 for ; Sun, 9 Jan 2000 02:06:37 -0800 (PST) (envelope-from kris@hub.freebsd.org) Date: Sun, 9 Jan 2000 02:06:37 -0800 (PST) From: Kris Kennaway To: audit@freebsd.org Subject: Tempfile handling in kgzip Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG tempnam() -> mkstemp() Kris Index: kgzip.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/kgzip/kgzip.c,v retrieving revision 1.2 diff -u -r1.2 kgzip.c --- kgzip.c 1999/08/28 01:16:43 1.2 +++ kgzip.c 2000/01/09 10:02:49 @@ -47,11 +47,9 @@ #define SFX_KGZ ".kgz" /* Filename suffix: executable */ #define SFX_MAX 5 /* Size of larger filename suffix */ -#define TMP_PREFIX "kgz" /* Temporary file prefix */ - const char *loader = "/usr/lib/kgzldr.o"; /* Default loader */ -static const char *tname; /* Name of temporary file */ +static char tname[] = "/tmp/kgzXXXXXXXXXX"; /* Name of temporary file */ static void cleanup(void); static void mk_fn(int, const char *, const char *, char *[]); @@ -122,7 +120,7 @@ { const char *p, *s; size_t n; - int i; + int i, fd; i = 0; s = strrchr(f1, 0); @@ -133,8 +131,9 @@ } fn[i++] = (char *)f1; if (i == FN_OBJ && !cflag) { - if (!(tname = tempnam(NULL, TMP_PREFIX))) + if ((fd = mkstemp(tname)) == -1) err(1, NULL); + close(fd); fn[i++] = (char *)tname; } if (!(fn[i] = (char *)f2)) { To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message