View | Details | Raw Unified | Return to bug 42510
Collapse All | Expand All

(-)src/file.c (-10 / +14 lines)
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
}

Return to bug 42510