From 1ebf647b05a7314cfc0279810f802dd1dfa332c1 Mon Sep 17 00:00:00 2001 From: "Anthony G. Basile" Date: Mon, 21 Jan 2013 19:07:16 -0500 Subject: Fall back on POSIX mkstemp() for systems lacking mkostemp() We add an autotools check to use mkstemp() and fcntl() when mkostemp() is missing. This is not strictly equivalent because we have no way of setting the file access mode O_WRONLY flag, but that should produce no functional difference. Signed-off-by: Richard Yao Signed-off-by: Anthony G. Basile --- src/libudev/util.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/libudev/util.c b/src/libudev/util.c index 43defd35b5..1d57a01567 100644 --- a/src/libudev/util.c +++ b/src/libudev/util.c @@ -4300,10 +4300,10 @@ int execute_command(const char *command, char *const argv[]) { pid_t pid; - int status; + int status; - if ((status = access(command, X_OK)) != 0) - return status; + if ((status = access(command, X_OK)) != 0) + return status; if ((pid = fork()) < 0) { log_error("Failed to fork: %m"); @@ -4582,7 +4582,12 @@ int fopen_temporary(const char *path, FILE **_f, char **_temp_path) { t[k] = '.'; stpcpy(stpcpy(t+k+1, fn), "XXXXXX"); +#if HAVE_DECL_MKOSTEMP fd = mkostemp(t, O_WRONLY|O_CLOEXEC); +#else + fd = mkstemp(t); + fcntl(t, F_SETFD, FD_CLOEXEC); +#endif if (fd < 0) { free(t); return -errno; -- cgit v1.2.3-54-g00ecf