Nikola Pajkovsky 8750f0
From 36f80f06119888a2fa5403fdb57102378343bc9b Mon Sep 17 00:00:00 2001
Nikola Pajkovsky 8750f0
From: Denys Vlasenko <dvlasenk@redhat.com>
Nikola Pajkovsky 8750f0
Date: Sun, 17 Jul 2011 11:00:44 +0200
Nikola Pajkovsky 8750f0
Subject: [PATCH] abrtd: pipe post-create output to log. Closes bz#699152
Nikola Pajkovsky 8750f0
Nikola Pajkovsky 8750f0
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Nikola Pajkovsky 8750f0
(cherry picked from commit 92a230c7f996c67f32106f906dec0dd8e9996aca)
Nikola Pajkovsky 8750f0
Nikola Pajkovsky 8750f0
Conflicts:
Nikola Pajkovsky 8750f0
Nikola Pajkovsky 8750f0
	src/lib/abrt_conf.c
Nikola Pajkovsky 8750f0
Nikola Pajkovsky 8750f0
diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c
Nikola Pajkovsky 8750f0
index 3da3130..d7b3f0e 100644
Nikola Pajkovsky 8750f0
--- a/src/daemon/abrtd.c
Nikola Pajkovsky 8750f0
+++ b/src/daemon/abrtd.c
Nikola Pajkovsky 8750f0
@@ -334,8 +334,11 @@ static int is_crash_a_dup(const char *dump_dir_name, void *param)
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
 static char *do_log(char *log_line, void *param)
Nikola Pajkovsky 8750f0
 {
Nikola Pajkovsky 8750f0
-    VERB1 log("%s", log_line);
Nikola Pajkovsky 8750f0
-    //update_client("%s", log_line);
Nikola Pajkovsky 8750f0
+    /* We pipe output of post-create events to our log (which usually
Nikola Pajkovsky 8750f0
+     * includes syslog). Otherwise, errors on post-create result in
Nikola Pajkovsky 8750f0
+     * "Corrupted or bad dump DIR, deleting" without adequate explanation why.
Nikola Pajkovsky 8750f0
+     */
Nikola Pajkovsky 8750f0
+    log("%s", log_line);
Nikola Pajkovsky 8750f0
     return log_line;
Nikola Pajkovsky 8750f0
 }
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
diff --git a/src/lib/abrt_conf.c b/src/lib/abrt_conf.c
Nikola Pajkovsky 8750f0
index 2e13f2d..b978854 100644
Nikola Pajkovsky 8750f0
--- a/src/lib/abrt_conf.c
Nikola Pajkovsky 8750f0
+++ b/src/lib/abrt_conf.c
Nikola Pajkovsky 8750f0
@@ -111,8 +111,13 @@ static void ParseCommon(map_string_h *settings, const char *conf_filename)
Nikola Pajkovsky 8750f0
     value = g_hash_table_lookup(settings, "MaxCrashReportsSize");
Nikola Pajkovsky 8750f0
     if (value)
Nikola Pajkovsky 8750f0
     {
Nikola Pajkovsky 8750f0
-//FIXME: dont die
Nikola Pajkovsky 8750f0
-        g_settings_nMaxCrashReportsSize = xatoi_positive(value);
Nikola Pajkovsky 8750f0
+        char *end;
Nikola Pajkovsky 8750f0
+        errno = 0;
Nikola Pajkovsky 8750f0
+        unsigned long ul = strtoul(value, &end, 10);
Nikola Pajkovsky 8750f0
+        if (errno || end == value || *end != '\0' || ul > INT_MAX)
Nikola Pajkovsky 8750f0
+            error_msg("Error parsing %s setting: '%s'", "MaxCrashReportsSize", value);
Nikola Pajkovsky 8750f0
+        else
Nikola Pajkovsky 8750f0
+            g_settings_nMaxCrashReportsSize = ul;
Nikola Pajkovsky 8750f0
         g_hash_table_remove(settings, "MaxCrashReportsSize");
Nikola Pajkovsky 8750f0
     }
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
diff --git a/src/plugins/ccpp_events.conf b/src/plugins/ccpp_events.conf
Nikola Pajkovsky 8750f0
index 53dc806..c202ba9 100644
Nikola Pajkovsky 8750f0
--- a/src/plugins/ccpp_events.conf
Nikola Pajkovsky 8750f0
+++ b/src/plugins/ccpp_events.conf
Nikola Pajkovsky 8750f0
@@ -9,8 +9,11 @@ EVENT=post-create analyzer=CCpp
Nikola Pajkovsky 8750f0
             test -r /var/log/messages || exit 0
Nikola Pajkovsky 8750f0
             executable=`cat executable` &&
Nikola Pajkovsky 8750f0
             base_executable=${executable##*/} &&
Nikola Pajkovsky 8750f0
-            grep -F -e "$base_executable" /var/log/messages | tail -999 >var_log_messages &&
Nikola Pajkovsky 8750f0
-            echo "Element 'var_log_messages' saved"
Nikola Pajkovsky 8750f0
+            log=`grep -F -e "$base_executable" /var/log/messages | tail -99` &&
Nikola Pajkovsky 8750f0
+            if test -n "$log"; then
Nikola Pajkovsky 8750f0
+                prinf "%s\n" "$log" >var_log_messages
Nikola Pajkovsky 8750f0
+                # echo "Element 'var_log_messages' saved"
Nikola Pajkovsky 8750f0
+            fi
Nikola Pajkovsky 8750f0
         )
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
 EVENT=analyze_xsession_errors analyzer=CCpp dso_list~=.*/libX11.*
Nikola Pajkovsky 8750f0
-- 
Nikola Pajkovsky 8750f0
1.7.6
Nikola Pajkovsky 8750f0