shithub: scc

Download patch

ref: 271754d6f1e0beeb18ddfa17513811fd1b8a0892
parent: c2d71566fa9857e9cb87d0508d9b75f7f5fe2c94
author: Quentin Rameau <quinq@fifth.space>
date: Sun Dec 4 05:36:21 EST 2016

[driver] fix temporary object generation for old POSIX

Pre-susv4 mkstemp don't impose a filename format and don't provide
EINVAL error on which we were counting.

--- a/driver/posix/scc.c
+++ b/driver/posix/scc.c
@@ -163,10 +163,12 @@
 	n = snprintf(new, newsz, "%.*s%c%s", (int)pathln, path, sep, type);
 	if (n < 0 || n >= newsz)
 		die("scc: wrong output filename");
-	if ((tmpfd = mkstemp(new)) < 0 && errno != EINVAL)
-		die("scc: could not create output file '%s': %s",
-		    new, strerror(errno));
-	close(tmpfd);
+	if (sep == '/') {
+		if ((tmpfd = mkstemp(new)) < 0)
+			die("scc: could not create output file '%s': %s",
+			    new, strerror(errno));
+		close(tmpfd);
+	}
 
 	return new;
 }