Jiri 676fa8
From 26a0f776d32d0d5be2e15abe781adf5a830c24cc Mon Sep 17 00:00:00 2001
Jiri 676fa8
From: Denys Vlasenko <dvlasenk@redhat.com>
Jiri 676fa8
Date: Wed, 7 Dec 2011 14:14:56 +0100
Jiri 676fa8
Subject: [PATCH 4/5] abrtd: always explain why we delete "corrupted" dir.
Jiri 676fa8
 Closes rhbz#706131.
Jiri 676fa8
Jiri 676fa8
We were almost always explaining it, except for the case when
Jiri 676fa8
'post-create' was failing silently.
Jiri 676fa8
Jiri 676fa8
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Jiri 676fa8
---
Jiri 676fa8
 src/daemon/abrtd.c |   12 +++++++++++-
Jiri 676fa8
 1 files changed, 11 insertions(+), 1 deletions(-)
Jiri 676fa8
Jiri 676fa8
diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c
Jiri 676fa8
index 743e40f..b5c3d4b 100644
Jiri 676fa8
--- a/src/daemon/abrtd.c
Jiri 676fa8
+++ b/src/daemon/abrtd.c
Jiri 676fa8
@@ -313,14 +313,24 @@ static mw_result_t run_post_create_and_load_data(const char *dump_dir_name, prob
Jiri 676fa8
     /* Prevent having zombie child process */
Jiri 676fa8
     int status;
Jiri 676fa8
     safe_waitpid(child, &status, 0);
Jiri 676fa8
-    /* status = WEXITSTATUS(status); - wrong, we need to check WIFEXITED too */
Jiri 676fa8
 
Jiri 676fa8
     /* exit 0 means "this is a good, non-dup dir" */
Jiri 676fa8
     /* exit with 1 + "DUP_OF_DIR: dir" string => dup */
Jiri 676fa8
     if (status != 0)
Jiri 676fa8
     {
Jiri 676fa8
+        if (WIFSIGNALED(status))
Jiri 676fa8
+        {
Jiri 676fa8
+            log("'post-create' on '%s' killed by signal %d",
Jiri 676fa8
+                            dump_dir_name, WTERMSIG(status));
Jiri 676fa8
+            return MW_ERROR;
Jiri 676fa8
+        }
Jiri 676fa8
+        /* else: it is WIFEXITED(status) */
Jiri 676fa8
         if (!dup_of_dir)
Jiri 676fa8
+        {
Jiri 676fa8
+            log("'post-create' on '%s' exited with %d",
Jiri 676fa8
+                            dump_dir_name, WEXITSTATUS(status));
Jiri 676fa8
             return MW_ERROR;
Jiri 676fa8
+        }
Jiri 676fa8
         dump_dir_name = dup_of_dir;
Jiri 676fa8
     }
Jiri 676fa8
 
Jiri 676fa8
-- 
Jiri 676fa8
1.7.7.3
Jiri 676fa8