Fix O_TMPFILE usage.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 24 Apr 2014 22:51:13 +0000 (00:51 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 24 Apr 2014 22:51:13 +0000 (00:51 +0200)
Seemingly open() needs to take a pathname only, not a full filename.
This made us _always_ go into the mkstemp() path, which was of course
not the intention.

util.cpp

index 5659bed..8f42a98 100644 (file)
--- a/util.cpp
+++ b/util.cpp
@@ -18,9 +18,9 @@ using namespace std;
 
 int make_tempfile(const std::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) {