ports/54012: [patch] devel/mk: Update to 1.4

Volker Stolz stolz at i2.informatik.rwth-aachen.de
Mon Jul 14 14:13:03 UTC 2003


On Wed, Jul 02, 2003 at 05:40:11AM -0700, FreeBSD-gnats-submit at FreeBSD.org wrote:
> http://www.freebsd.org/cgi/query-pr.cgi?pr=54012
> 
> >Category:       ports
> >Responsible:    freebsd-ports-bugs
> >Synopsis:       [patch] devel/mk: Update to 1.4
> >Arrival-Date:   Wed Jul 02 05:40:11 PDT 2003

Osa@ asked me to look into the tmpnam() issue. Fix seems to have been lost
in the noise. Two (new) patchfiles attached:
 - patch-src-main.c
 - patch-src-Posix.c

Volker
-- 
http://www-i2.informatik.rwth-aachen.de/stolz/ *** PGP *** S/MIME
rage against the finite state machine 
-------------- next part --------------
--- src/main.c.orig	Wed Jun  5 17:30:39 2002
+++ src/main.c	Thu Jul  3 18:34:19 2003
@@ -33,7 +33,7 @@
 main(int argc, char **argv)
 {
 	Word *w;
-	char *s, *temp;
+	char *s;
 	char *files[256], **f = files, **ff;
 	int sflag = 0;
 	int i;
@@ -41,6 +41,8 @@
 	Biobuf tb;
 	Bufblock *buf;
 	Bufblock *whatif;
+	char TMPLATE[14];
+	(void)strncpy(TMPLATE,"/tmp/mk.XXXXX", sizeof(TMPLATE));
 
 	/*
 	 *  start with a copy of the current environment variables
@@ -133,21 +135,15 @@
 	/*
 		assignment args become null strings
 	*/
-	temp = 0;
 	for(i = 0; argv[i]; i++) if(utfrune(argv[i], '=')){
 		bufcpy(buf, argv[i], strlen(argv[i]));
 		insert(buf, ' ');
 		if(tfd < 0){
-			temp = maketmp();
-			if(temp == 0) {
-				perror("temp file");
-				Exit();
-			}
-			close(create(temp, OWRITE, 0600));
-			if((tfd = open(temp, 2)) < 0){
-				perror(temp);
+			if ((tfd = mkstemp(TMPLATE)) < 0){
+				perror(TMPLATE);
 				Exit();
 			}
+			unlink(TMPLATE);
 			Binit(&tb, tfd, OWRITE);
 		}
 		Bprint(&tb, "%s\n", argv[i]);
@@ -157,7 +153,6 @@
 		Bflush(&tb);
 		LSEEK(tfd, 0L, 0);
 		parse("command line args", tfd, 1);
-		remove(temp);
 	}
 
 	if (buf->current != buf->start) {
-------------- next part --------------
--- src/Posix.c.orig	Thu Jul  3 16:08:16 2003
+++ src/Posix.c	Thu Jul  3 16:08:31 2003
@@ -276,14 +276,6 @@
 		signal(sigmsgs[i].sig, notifyf);
 }
 
-char*
-maketmp(void)
-{
-	static char temp[L_tmpnam];
-
-	return tmpnam(temp);
-}
-
 int
 chgtime(char *name)
 {


More information about the freebsd-ports-bugs mailing list