diff options
Diffstat (limited to 'meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch')
-rw-r--r-- | meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch | 166 |
1 files changed, 13 insertions, 153 deletions
diff --git a/meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch b/meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch index 99ea573..8c7aa07 100644 --- a/meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch +++ b/meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch @@ -1,170 +1,30 @@ Upstream-Status: Denied [no desire for uclibc support] Signed-off-by: Khem Raj <raj.khem@gmail.com> -Index: systemd-206/src/journal/journal-send.c +Index: git/src/shared/util.c =================================================================== ---- systemd-206.orig/src/journal/journal-send.c 2013-07-21 15:43:28.000000000 -0700 -+++ systemd-206/src/journal/journal-send.c 2013-08-21 08:50:50.825892498 -0700 -@@ -46,6 +46,8 @@ - memcpy(*_f + 10, _func, _fl); \ - } while(false) - -+#include "config.h" -+ - /* We open a single fd, and we'll share it with the current process, - * all its threads, and all its subprocesses. This means we need to - * initialize it atomically, and need to operate on it atomically -@@ -311,8 +313,13 @@ - /* Message doesn't fit... Let's dump the data in a temporary - * file and just pass a file descriptor of it to the other - * side */ -- -+#ifdef HAVE_MKOSTEMP - buffer_fd = mkostemp(path, O_CLOEXEC|O_RDWR); -+#else -+ buffer_fd = mkstemp(path); -+ if (buffer_fd >= 0) fcntl(buffer_fd, F_SETFD, FD_CLOEXEC); -+#endif /* HAVE_MKOSTEMP */ -+ - if (buffer_fd < 0) - return -errno; - -Index: systemd-206/src/core/manager.c -=================================================================== ---- systemd-206.orig/src/core/manager.c 2013-07-21 15:43:28.000000000 -0700 -+++ systemd-206/src/core/manager.c 2013-08-21 08:51:35.209893331 -0700 -@@ -71,6 +71,7 @@ - #include "audit-fd.h" - #include "efivars.h" - #include "env-util.h" -+#include "config.h" - - /* As soon as 5s passed since a unit was added to our GC queue, make sure to run a gc sweep */ - #define GC_QUEUE_USEC_MAX (10*USEC_PER_SEC) -@@ -2058,7 +2059,12 @@ - return -ENOMEM; - - RUN_WITH_UMASK(0077) { -+#ifdef HAVE_MKOSTEMP - fd = mkostemp(path, O_RDWR|O_CLOEXEC); -+#else -+ fd = mkstemp(path); -+ if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC); -+#endif /* HAVE_MKOSTEMP */ - } - - if (fd < 0) { -Index: systemd-206/src/shared/util.c -=================================================================== ---- systemd-206.orig/src/shared/util.c 2013-07-21 15:43:28.000000000 -0700 -+++ systemd-206/src/shared/util.c 2013-08-21 08:50:50.829892498 -0700 -@@ -74,6 +74,8 @@ - #include "env-util.h" - #include "fileio.h" +--- git.orig/src/shared/util.c 2014-03-15 15:14:21.368160908 -0700 ++++ git/src/shared/util.c 2014-03-15 15:44:21.988194688 -0700 +@@ -85,6 +85,8 @@ + #include "def.h" + #include "missing.h" +#include "config.h" + int saved_argc = 0; char **saved_argv = NULL; -@@ -3980,7 +3982,12 @@ - t[k] = '.'; - stpcpy(stpcpy(t+k+1, fn), "XXXXXX"); - -+#ifdef HAVE_MKOSTEMP - fd = mkostemp(t, O_WRONLY|O_CLOEXEC); -+#else -+ fd = mkstemp(t); -+ if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC); -+#endif /* HAVE_MKOSTEMP */ - if (fd < 0) { - free(t); - return -errno; -Index: systemd-206/src/shared/ask-password-api.c -=================================================================== ---- systemd-206.orig/src/shared/ask-password-api.c 2013-07-21 15:43:28.000000000 -0700 -+++ systemd-206/src/shared/ask-password-api.c 2013-08-21 08:50:50.829892498 -0700 -@@ -37,6 +37,8 @@ - - #include "ask-password-api.h" - -+#include "config.h" -+ - static void backspace_chars(int ttyfd, size_t p) { +@@ -6222,7 +6224,13 @@ - if (ttyfd < 0) -@@ -325,7 +327,12 @@ - mkdir_p_label("/run/systemd/ask-password", 0755); + u = umask(077); - RUN_WITH_UMASK(0022) { +#ifdef HAVE_MKOSTEMP - fd = mkostemp(temp, O_CLOEXEC|O_CREAT|O_WRONLY); + fd = mkostemp(pattern, flags); +#else -+ fd = mkstemp(temp); -+ if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC); -+#endif /* HAVE_MKOSTEMP */ - } - - if (fd < 0) { -Index: systemd-206/src/journal/journalctl.c -=================================================================== ---- systemd-206.orig/src/journal/journalctl.c 2013-07-21 15:43:28.000000000 -0700 -+++ systemd-206/src/journal/journalctl.c 2013-08-21 08:50:50.833892498 -0700 -@@ -1005,7 +1005,13 @@ - n /= arg_interval; - - close_nointr_nofail(fd); -+#ifdef HAVE_MKOSTEMP - fd = mkostemp(k, O_WRONLY|O_CLOEXEC|O_NOCTTY); -+#else -+ fd = mkstemp(k); -+ if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC); ++ fd = mkstemp(pattern); ++ if (fd >= 0) fcntl(fd, F_SETFD, flags); +#endif /* HAVE_MKOSTEMP */ + - if (fd < 0) { - log_error("Failed to open %s: %m", k); - r = -errno; -Index: systemd-206/src/journal/journal-verify.c -=================================================================== ---- systemd-206.orig/src/journal/journal-verify.c 2013-07-21 15:43:28.000000000 -0700 -+++ systemd-206/src/journal/journal-verify.c 2013-08-21 08:50:50.833892498 -0700 -@@ -811,8 +811,12 @@ - #endif - } else if (f->seal) - return -ENOKEY; -- -+#ifdef HAVE_MKOSTEMP - data_fd = mkostemp(data_path, O_CLOEXEC); -+#else -+ data_fd = mkstemp(data_path); -+ if (data_fd >= 0) fcntl(data_fd, F_SETFD, FD_CLOEXEC); -+#endif /* HAVE_MKOSTEMP */ - if (data_fd < 0) { - log_error("Failed to create data file: %m"); - r = -errno; -@@ -820,7 +824,12 @@ - } - unlink(data_path); - -+#ifdef HAVE_MKOSTEMP - entry_fd = mkostemp(entry_path, O_CLOEXEC); -+#else -+ entry_fd = mkstemp(entry_path); -+ if (entry_fd >= 0) fcntl(entry_fd, F_SETFD, FD_CLOEXEC); -+#endif /* HAVE_MKOSTEMP */ - if (entry_fd < 0) { - log_error("Failed to create entry file: %m"); - r = -errno; -@@ -828,7 +837,12 @@ - } - unlink(entry_path); + if (fd < 0) + return -errno; -+#ifdef HAVE_MKOSTEMP - entry_array_fd = mkostemp(entry_array_path, O_CLOEXEC); -+#else -+ entry_array_fd = mkstemp(entry_array_path); -+ if (entry_array_fd >= 0) fcntl(entry_array_fd, F_SETFD, FD_CLOEXEC); -+#endif /* HAVE_MKOSTEMP */ - if (entry_array_fd < 0) { - log_error("Failed to create entry array file: %m"); - r = -errno; |