|
Jakub Filak |
d596ad |
From 1cb9013d7ec62b282fd404062e88371916a12fad Mon Sep 17 00:00:00 2001
|
|
Jakub Filak |
d596ad |
From: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
d596ad |
Date: Wed, 30 Sep 2015 12:17:47 +0200
|
|
Jakub Filak |
d596ad |
Subject: [PATCH] conf: introduce DebugLevel
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
ABRT should ignore problems caused by ABRT tools if DebugLevel == 0.
|
|
Jakub Filak |
d596ad |
DebugLevel is set to 0 by default.
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
Related to CVE-2015-5287
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
d596ad |
---
|
|
Jakub Filak |
d596ad |
doc/abrt.conf.txt | 8 ++++++++
|
|
Jakub Filak |
d596ad |
src/daemon/abrt.conf | 8 ++++++++
|
|
Jakub Filak |
d596ad |
src/include/libabrt.h | 2 ++
|
|
Jakub Filak |
d596ad |
src/lib/abrt_conf.c | 14 ++++++++++++++
|
|
Jakub Filak |
d596ad |
4 files changed, 32 insertions(+)
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
diff --git a/doc/abrt.conf.txt b/doc/abrt.conf.txt
|
|
Jakub Filak |
d596ad |
index 6626596..1276f55 100644
|
|
Jakub Filak |
d596ad |
--- a/doc/abrt.conf.txt
|
|
Jakub Filak |
d596ad |
+++ b/doc/abrt.conf.txt
|
|
Jakub Filak |
d596ad |
@@ -36,6 +36,14 @@ DeleteUploaded = 'yes/no'::
|
|
Jakub Filak |
d596ad |
or not.
|
|
Jakub Filak |
d596ad |
The default value is 'no'.
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
+DebugLevel = '0-100':
|
|
Jakub Filak |
d596ad |
+ Allows ABRT tools to detect problems in ABRT itself. By increasing the value
|
|
Jakub Filak |
d596ad |
+ you can force ABRT to detect, process and report problems in ABRT. You have
|
|
Jakub Filak |
d596ad |
+ to bare in mind that ABRT might fall into an infinite loop when handling
|
|
Jakub Filak |
d596ad |
+ problems caused by itself.
|
|
Jakub Filak |
d596ad |
+ The default is 0 (non debug mode).
|
|
Jakub Filak |
d596ad |
+
|
|
Jakub Filak |
d596ad |
+
|
|
Jakub Filak |
d596ad |
SEE ALSO
|
|
Jakub Filak |
d596ad |
--------
|
|
Jakub Filak |
d596ad |
abrtd(8)
|
|
Jakub Filak |
d596ad |
diff --git a/src/daemon/abrt.conf b/src/daemon/abrt.conf
|
|
Jakub Filak |
d596ad |
index 0050c6d..dbc2007 100644
|
|
Jakub Filak |
d596ad |
--- a/src/daemon/abrt.conf
|
|
Jakub Filak |
d596ad |
+++ b/src/daemon/abrt.conf
|
|
Jakub Filak |
d596ad |
@@ -59,3 +59,11 @@ AutoreportingEnabled = no
|
|
Jakub Filak |
d596ad |
# SPECIAL ROOT DIRECTORY IN USER MOUNT NAMESAPCE
|
|
Jakub Filak |
d596ad |
#
|
|
Jakub Filak |
d596ad |
# ExploreChroots = false
|
|
Jakub Filak |
d596ad |
+
|
|
Jakub Filak |
d596ad |
+# Allows ABRT tools to detect problems in ABRT itself. By increasing the value
|
|
Jakub Filak |
d596ad |
+# you can force ABRT to detect, process and report problems in ABRT. You have
|
|
Jakub Filak |
d596ad |
+# to bare in mind that ABRT might fall into an infinite loop when handling
|
|
Jakub Filak |
d596ad |
+# problems caused by itself.
|
|
Jakub Filak |
d596ad |
+# The default is 0 (non debug mode).
|
|
Jakub Filak |
d596ad |
+#
|
|
Jakub Filak |
d596ad |
+# DebugLevel = 0
|
|
Jakub Filak |
d596ad |
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
|
|
Jakub Filak |
d596ad |
index da565f9..6f89959 100644
|
|
Jakub Filak |
d596ad |
--- a/src/include/libabrt.h
|
|
Jakub Filak |
d596ad |
+++ b/src/include/libabrt.h
|
|
Jakub Filak |
d596ad |
@@ -77,6 +77,8 @@ extern char * g_settings_autoreporting_event;
|
|
Jakub Filak |
d596ad |
extern bool g_settings_shortenedreporting;
|
|
Jakub Filak |
d596ad |
#define g_settings_explorechroots abrt_g_settings_explorechroots
|
|
Jakub Filak |
d596ad |
extern bool g_settings_explorechroots;
|
|
Jakub Filak |
d596ad |
+#define g_settings_debug_level abrt_g_settings_debug_level
|
|
Jakub Filak |
d596ad |
+extern unsigned int g_settings_debug_level;
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
#define load_abrt_conf abrt_load_abrt_conf
|
|
Jakub Filak |
d596ad |
diff --git a/src/lib/abrt_conf.c b/src/lib/abrt_conf.c
|
|
Jakub Filak |
d596ad |
index 46ff689..f623344 100644
|
|
Jakub Filak |
d596ad |
--- a/src/lib/abrt_conf.c
|
|
Jakub Filak |
d596ad |
+++ b/src/lib/abrt_conf.c
|
|
Jakub Filak |
d596ad |
@@ -28,6 +28,7 @@ bool g_settings_autoreporting = 0;
|
|
Jakub Filak |
d596ad |
char * g_settings_autoreporting_event = NULL;
|
|
Jakub Filak |
d596ad |
bool g_settings_shortenedreporting = 0;
|
|
Jakub Filak |
d596ad |
bool g_settings_explorechroots = 0;
|
|
Jakub Filak |
d596ad |
+unsigned int g_settings_debug_level = 0;
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
void free_abrt_conf_data()
|
|
Jakub Filak |
d596ad |
{
|
|
Jakub Filak |
d596ad |
@@ -116,6 +117,19 @@ static void ParseCommon(map_string_t *settings, const char *conf_filename)
|
|
Jakub Filak |
d596ad |
else
|
|
Jakub Filak |
d596ad |
g_settings_explorechroots = false;
|
|
Jakub Filak |
d596ad |
|
|
Jakub Filak |
d596ad |
+ value = get_map_string_item_or_NULL(settings, "DebugLevel");
|
|
Jakub Filak |
d596ad |
+ if (value)
|
|
Jakub Filak |
d596ad |
+ {
|
|
Jakub Filak |
d596ad |
+ char *end;
|
|
Jakub Filak |
d596ad |
+ errno = 0;
|
|
Jakub Filak |
d596ad |
+ unsigned long ul = strtoul(value, &end, 10);
|
|
Jakub Filak |
d596ad |
+ if (errno || end == value || *end != '\0' || ul > INT_MAX)
|
|
Jakub Filak |
d596ad |
+ error_msg("Error parsing %s setting: '%s'", "DebugLevel", value);
|
|
Jakub Filak |
d596ad |
+ else
|
|
Jakub Filak |
d596ad |
+ g_settings_debug_level = ul;
|
|
Jakub Filak |
d596ad |
+ remove_map_string_item(settings, "DebugLevel");
|
|
Jakub Filak |
d596ad |
+ }
|
|
Jakub Filak |
d596ad |
+
|
|
Jakub Filak |
d596ad |
GHashTableIter iter;
|
|
Jakub Filak |
d596ad |
const char *name;
|
|
Jakub Filak |
d596ad |
/*char *value; - already declared */
|
|
Jakub Filak |
d596ad |
--
|
|
Jakub Filak |
d596ad |
2.6.3
|
|
Jakub Filak |
d596ad |
|