util: define O_TMPFILE on x86/x86-64, where the generic value is used
authorLennart Poettering <lennart@poettering.net>
Tue, 28 Jan 2014 12:25:51 +0000 (13:25 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 28 Jan 2014 12:25:51 +0000 (13:25 +0100)
On other archs we'll not define it so that open_tmpfile() falls back to
unguessable name + unlink.

src/shared/missing.h

index 4e62100..939f81d 100644 (file)
@@ -327,3 +327,19 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
 #ifndef TMP_MAX
 # define TMP_MAX 238328
 #endif
+
+#if defined(__i386__) || defined(__x86_64__)
+
+/* The precise definition of __O_TMPFILE is arch specific, so let's
+ * just define this on x86 where we know the value. */
+
+#ifndef __O_TMPFILE
+#define __O_TMPFILE     020000000
+#endif
+
+/* a horrid kludge trying to make sure that this will fail on old kernels */
+#ifndef O_TMPFILE
+#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
+#endif
+
+#endif