mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-01 05:45:45 +00:00
4f7ad857f3
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
40 lines
809 B
C
40 lines
809 B
C
--- 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 {
|
|
- 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;
|
|
}
|