|
Lines 185-200
Link Here
|
| 185 |
int create_temp_fd(char **name) |
185 |
int create_temp_fd(char **name) |
| 186 |
{ |
186 |
{ |
| 187 |
int fd; |
187 |
int fd; |
| 188 |
|
188 |
char filename[FILENAME_MAX]; |
| 189 |
*name = tmpnam(NULL); |
189 |
|
| 190 |
if (!*name) |
190 |
if (getenv("TMPDIR") != NULL) { |
| 191 |
fd = -1; |
191 |
strlcpy(filename, getenv("TMPDIR"), FILENAME_MAX); |
| 192 |
else { |
192 |
strlcat(filename, "/tmp.XXXXXX", FILENAME_MAX); |
| 193 |
unlink(*name); |
193 |
} else if (access("/var/tmp", (R_OK|W_OK)) == 0) |
| 194 |
fd = open(*name, O_RDWR|O_CREAT|O_EXCL, S_IRUSR|S_IWUSR); |
194 |
strlcpy(filename, "/var/tmp/tmp.XXXXXX", FILENAME_MAX); |
| 195 |
if (fd < 0) |
195 |
else |
| 196 |
*name = NULL; |
196 |
strlcpy(filename, "tmp.XXXXXX", FILENAME_MAX); |
| 197 |
} |
197 |
|
|
|
198 |
if ((fd = mkstemp(filename)) == -1) |
| 199 |
*name = NULL; |
| 200 |
else |
| 201 |
*name = filename; |
| 198 |
|
202 |
|
| 199 |
return fd; |
203 |
return fd; |
| 200 |
} |
204 |
} |