mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-31 05:41:08 +00:00
Fix build on -current (use TMPDIR environment variable to get preferred
tmp directory, and fall back to _PATH_TMP, instead of using header definitions that are no longer visible by default.) Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu> (based on) PR: ports/42510
This commit is contained in:
parent
d3fc0603a6
commit
4f7ad857f3
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=67906
@ -1,27 +1,39 @@
|
||||
Use mkstemp instead of tmpnam. Copied from the tmpnam implementation :)
|
||||
|
||||
-mi
|
||||
|
||||
--- src/file.c Fri Jan 9 12:16:19 1998
|
||||
+++ src/file.c Fri Jul 13 10:41:01 2001
|
||||
@@ -187,13 +187,11 @@
|
||||
int fd;
|
||||
+ static unsigned long tmpcount;
|
||||
+ static char buf[L_tmpnam];
|
||||
--- src/file.c.orig Fri Jan 9 09:16:19 1998
|
||||
+++ src/file.c Sat Sep 7 16:51:54 2002
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include "global.h"
|
||||
#include <sys/stat.h>
|
||||
+#include <paths.h>
|
||||
#include "expand.h"
|
||||
#include "file.h"
|
||||
|
||||
@@ -185,16 +186,18 @@
|
||||
int create_temp_fd(char **name)
|
||||
{
|
||||
int fd;
|
||||
-
|
||||
- *name = tmpnam(NULL);
|
||||
- if (!*name)
|
||||
- fd = -1;
|
||||
- else {
|
||||
+ (void)snprintf(buf, L_tmpnam, "%stmp.%lu.XXXXXX", P_tmpdir, tmpcount++);
|
||||
+ *name = buf;
|
||||
+ fd = mkstemp(buf);
|
||||
+ if (fd < 0)
|
||||
+ *name = NULL;
|
||||
- unlink(*name);
|
||||
- fd = open(*name, O_RDWR|O_CREAT|O_EXCL, S_IRUSR|S_IWUSR);
|
||||
- if (fd < 0)
|
||||
- *name = NULL;
|
||||
- }
|
||||
+ char filename[FILENAME_MAX];
|
||||
+ char *tmpdir;
|
||||
+
|
||||
+ if ((tmpdir = getenv("TMPDIR")) == NULL)
|
||||
+ tmpdir = _PATH_TMP;
|
||||
+ strlcpy(filename, tmpdir, FILENAME_MAX);
|
||||
+ strlcat(filename, "/tmp.XXXXXX", FILENAME_MAX);
|
||||
+
|
||||
+ if ((fd = mkstemp(filename)) == -1)
|
||||
+ *name = NULL;
|
||||
+ else
|
||||
+ *name = filename;
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user