using namespace std;
-int make_tempfile(const std::string &contents)
+int make_tempfile(const string &contents)
{
- char filename[] = "/tmp/cubemap.XXXXXX";
- int fd = open(filename, O_RDWR | O_TMPFILE, 0600);
+ int fd = open("/tmp", O_RDWR | O_TMPFILE, 0600);
if (fd == -1) {
+ char filename[] = "/tmp/cubemap.XXXXXX";
+ mode_t old_umask = umask(077);
fd = mkstemp(filename);
if (fd == -1) {
log_perror("mkstemp");
return -1;
}
+ umask(old_umask);
if (unlink(filename) == -1) {
log_perror("unlink");
return fd;
}
-bool read_tempfile_and_close(int fd, std::string *contents)
+bool read_tempfile_and_close(int fd, string *contents)
{
bool ok = read_tempfile(fd, contents);
safe_close(fd); // Implicitly deletes the file.
return ok;
}
-bool read_tempfile(int fd, std::string *contents)
+bool read_tempfile(int fd, string *contents)
{
ssize_t ret, has_read;