Julius Milan c90eb8
From 2aa79cd6a3fb7c0d2d4fbc26c1b2337ab6019668 Mon Sep 17 00:00:00 2001
Julius Milan c90eb8
From: Matej Habrnal <mhabrnal@redhat.com>
Julius Milan c90eb8
Date: Thu, 15 Jun 2017 17:14:28 +0200
Julius Milan c90eb8
Subject: [PATCH 01/27] a-d-journal-core: use pid of crashed process in dumpdir
Julius Milan c90eb8
 name
Julius Milan c90eb8
Julius Milan c90eb8
Without this commit pid of abrt-dump-journal-core is used in a name
Julius Milan c90eb8
of created problem directory instead of pid of crashed process.
Julius Milan c90eb8
Julius Milan c90eb8
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
Julius Milan c90eb8
---
Julius Milan c90eb8
 src/plugins/abrt-dump-journal-core.c | 10 +++++++++-
Julius Milan c90eb8
 1 file changed, 9 insertions(+), 1 deletion(-)
Julius Milan c90eb8
Julius Milan c90eb8
diff --git a/src/plugins/abrt-dump-journal-core.c b/src/plugins/abrt-dump-journal-core.c
Julius Milan c90eb8
index 971211e..5a7a79d 100644
Julius Milan c90eb8
--- a/src/plugins/abrt-dump-journal-core.c
Julius Milan c90eb8
+++ b/src/plugins/abrt-dump-journal-core.c
Julius Milan c90eb8
@@ -71,6 +71,7 @@ struct crash_info
Julius Milan c90eb8
     char *ci_executable_path;          ///< /full/path/to/executable
Julius Milan c90eb8
     const char *ci_executable_name;    ///< executable
Julius Milan c90eb8
     uid_t ci_uid;
Julius Milan c90eb8
+    pid_t ci_pid;
Julius Milan c90eb8
 
Julius Milan c90eb8
     struct field_mapping *ci_mapping;
Julius Milan c90eb8
     size_t ci_mapping_items;
Julius Milan c90eb8
@@ -219,6 +220,13 @@ abrt_journal_core_retrieve_information(abrt_journal_t *journal, struct crash_inf
Julius Milan c90eb8
         return -EINVAL;
Julius Milan c90eb8
     }
Julius Milan c90eb8
 
Julius Milan c90eb8
+    /* This is not fatal, the pid is used only in dumpdir name */
Julius Milan c90eb8
+    if (abrt_journal_get_int_field(journal, "COREDUMP_PID", &(info->ci_pid)))
Julius Milan c90eb8
+    {
Julius Milan c90eb8
+        log_notice("Failed to get PID from journal message.");
Julius Milan c90eb8
+        info->ci_pid = getpid();
Julius Milan c90eb8
+    }
Julius Milan c90eb8
+
Julius Milan c90eb8
     char *proc_status = abrt_journal_get_string_field(journal, "COREDUMP_PROC_STATUS", NULL);
Julius Milan c90eb8
     if (proc_status == NULL)
Julius Milan c90eb8
     {
Julius Milan c90eb8
@@ -322,7 +330,7 @@ save_systemd_coredump_in_dump_directory(struct dump_dir *dd, struct crash_info *
Julius Milan c90eb8
 static int
Julius Milan c90eb8
 abrt_journal_core_to_abrt_problem(struct crash_info *info, const char *dump_location)
Julius Milan c90eb8
 {
Julius Milan c90eb8
-    struct dump_dir *dd = create_dump_dir(dump_location, "ccpp", /*fs owner*/0,
Julius Milan c90eb8
+    struct dump_dir *dd = create_dump_dir_ext(dump_location, "ccpp", info->ci_pid, /*fs owner*/0,
Julius Milan c90eb8
             (save_data_call_back)save_systemd_coredump_in_dump_directory, info);
Julius Milan c90eb8
 
Julius Milan c90eb8
     if (dd != NULL)
Julius Milan c90eb8
-- 
Julius Milan c90eb8
2.9.5
Julius Milan c90eb8