Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e46b253 authored by Mickaël Salaün's avatar Mickaël Salaün Committed by Richard Weinberger
Browse files

um: Use race-free temporary file creation



Open the memory mapped file with the O_TMPFILE flag when available.

Signed-off-by: default avatarMickaël Salaün <mic@digikod.net>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Richard Weinberger <richard@nod.at>
Acked-by: default avatarTristan Schmelcher <tschmelcher@google.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 571d2f0c
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -106,6 +106,17 @@ static int __init make_tempfile(const char *template)
		}
	}

#ifdef O_TMPFILE
	fd = open(tempdir, O_CLOEXEC | O_RDWR | O_EXCL | O_TMPFILE, 0700);
	/*
	 * If the running system does not support O_TMPFILE flag then retry
	 * without it.
	 */
	if (fd != -1 || (errno != EINVAL && errno != EISDIR &&
			errno != EOPNOTSUPP))
		return fd;
#endif

	tempname = malloc(strlen(tempdir) + strlen(template) + 1);
	if (tempname == NULL)
		return -1;