diff options
Diffstat (limited to 'src/journal')
-rw-r--r-- | src/journal/coredump.c | 9 | ||||
-rw-r--r-- | src/journal/journald.c | 19 |
2 files changed, 21 insertions, 7 deletions
diff --git a/src/journal/coredump.c b/src/journal/coredump.c index db805d6cb5..10897f3461 100644 --- a/src/journal/coredump.c +++ b/src/journal/coredump.c @@ -25,12 +25,16 @@ #include <sys/prctl.h> #include <systemd/sd-journal.h> + +#ifdef HAVE_LOGIND #include <systemd/sd-login.h> +#endif #include "log.h" #include "util.h" #include "mkdir.h" #include "special.h" +#include "cgroup-util.h" #define COREDUMP_MAX (24*1024*1024) @@ -126,7 +130,7 @@ int main(int argc, char* argv[]) { goto finish; } - if (sd_pid_get_unit(pid, &t) >= 0) { + if (cg_pid_get_unit(pid, &t) >= 0) { if (streq(t, SPECIAL_JOURNALD_SERVICE)) { /* Make sure we don't make use of the journal, @@ -182,6 +186,7 @@ int main(int argc, char* argv[]) { if (core_comm) IOVEC_SET_STRING(iovec[j++], core_comm); +#ifdef HAVE_LOGIND if (sd_pid_get_session(pid, &t) >= 0) { core_session = strappend("COREDUMP_SESSION=", t); free(t); @@ -190,6 +195,8 @@ int main(int argc, char* argv[]) { IOVEC_SET_STRING(iovec[j++], core_session); } +#endif + if (get_process_exe(pid, &t) >= 0) { core_exe = strappend("COREDUMP_EXE=", t); free(t); diff --git a/src/journal/journald.c b/src/journal/journald.c index 5ecb7f72d3..8ce9ce858b 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -31,10 +31,13 @@ #include <sys/statvfs.h> #include <systemd/sd-journal.h> -#include <systemd/sd-login.h> #include <systemd/sd-messages.h> #include <systemd/sd-daemon.h> +#ifdef HAVE_LOGIND +#include <systemd/sd-login.h> +#endif + #include "mkdir.h" #include "hashmap.h" #include "journal-file.h" @@ -479,7 +482,9 @@ static void dispatch_message_real( if (ucred) { uint32_t audit; +#ifdef HAVE_LOGIND uid_t owner; +#endif realuid = ucred->uid; @@ -538,6 +543,7 @@ static void dispatch_message_real( IOVEC_SET_STRING(iovec[n++], cgroup); } +#ifdef HAVE_LOGIND if (sd_pid_get_session(ucred->pid, &t) >= 0) { session = strappend("_SYSTEMD_SESSION=", t); free(t); @@ -546,7 +552,12 @@ static void dispatch_message_real( IOVEC_SET_STRING(iovec[n++], session); } - if (sd_pid_get_unit(ucred->pid, &t) >= 0) { + if (sd_pid_get_owner_uid(ucred->uid, &owner) >= 0) + if (asprintf(&owner_uid, "_SYSTEMD_OWNER_UID=%lu", (unsigned long) owner) >= 0) + IOVEC_SET_STRING(iovec[n++], owner_uid); +#endif + + if (cg_pid_get_unit(ucred->pid, &t) >= 0) { unit = strappend("_SYSTEMD_UNIT=", t); free(t); @@ -554,10 +565,6 @@ static void dispatch_message_real( IOVEC_SET_STRING(iovec[n++], unit); } - if (sd_pid_get_owner_uid(ucred->uid, &owner) >= 0) - if (asprintf(&owner_uid, "_SYSTEMD_OWNER_UID=%lu", (unsigned long) owner) >= 0) - IOVEC_SET_STRING(iovec[n++], owner_uid); - #ifdef HAVE_SELINUX if (label) { selinux_context = malloc(sizeof("_SELINUX_CONTEXT=") + label_len); |