Compare commits
195 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0baf939494 | ||
|
|
fb86abde3b | ||
|
|
b36cf8c499 | ||
|
|
ba57e0bbb5 | ||
|
|
54bdc1243f | ||
|
|
026c727cd2 | ||
|
|
3e192a597d | ||
|
|
ea69665c75 | ||
|
|
b8a18969b7 | ||
|
|
3063be65d9 | ||
|
|
c76a737f5a | ||
|
|
67fc5aa756 | ||
|
|
1bb8628644 | ||
|
|
d48adf4500 | ||
|
|
e5b49f4be8 | ||
|
|
66812b6c92 | ||
|
|
af451300aa | ||
|
|
202231f9cb | ||
|
|
e8f18508da | ||
|
|
58c69f3384 | ||
|
|
7fea67f0ed | ||
|
|
7eebe59cc3 | ||
|
|
f1adb64577 | ||
|
|
32054b4681 | ||
|
|
bbc9c5edc4 | ||
|
|
e76a84e22d | ||
|
|
7073ad4346 | ||
|
|
1f0eac990d | ||
|
|
e65ab2c3e6 | ||
|
|
8c7bdb1523 | ||
|
|
e73a64df97 | ||
|
|
50a321fe1d | ||
|
|
a20ba81e1d | ||
|
|
c8a122775e | ||
|
|
4f63977e6d | ||
|
|
534292e248 | ||
|
|
d3f14892f8 | ||
|
|
1e992dd7d9 | ||
|
|
f144023834 | ||
|
|
3f24d62289 | ||
|
|
f9fd407b73 | ||
|
|
fcc2f68d2d | ||
|
|
15bea33e03 | ||
|
|
0302f37126 | ||
|
|
88895e18b5 | ||
|
|
1c9f6e51cf | ||
|
|
810fcb1911 | ||
|
|
1b8bae307a | ||
|
|
7c6ec28dde | ||
|
|
d99ab08e76 | ||
|
|
e3d620d8fc | ||
|
|
1d49502fa7 |
||
|
|
4f59333992 | ||
|
|
61c2c079e0 | ||
|
|
f99a7f835a | ||
|
|
a4e0effc61 | ||
|
|
094983af73 | ||
|
|
81ec67df39 | ||
|
|
26627dbec3 | ||
|
|
126031c321 | ||
|
|
a1c9e8ff22 | ||
|
|
074ab8b76c | ||
|
|
7e13959917 | ||
|
|
dacf4e649a | ||
|
|
003b0187a1 | ||
|
|
82eb0a22c3 | ||
|
|
511e6ce6d4 | ||
|
|
1ab9d3859f | ||
|
|
00422605f4 | ||
|
|
3de7b9d0b7 | ||
|
|
5e37f50192 | ||
|
|
92ab2eb5b3 | ||
|
|
935456c7d9 | ||
|
|
d8a4ccc6c2 | ||
|
|
a2bcded0dc | ||
|
|
18305b2c50 | ||
|
|
438b4b73c7 | ||
|
|
9f7a213711 | ||
|
|
bf7b8afe4a | ||
|
|
61c6c411a8 | ||
|
|
e161563d64 | ||
|
|
400b28eb78 | ||
|
|
c84c5d2738 | ||
|
|
5f74b5e407 |
||
|
|
10288b9c6d |
||
|
|
2bb52e3881 |
||
|
|
68a77d6ad6 | ||
|
|
8f4c491a4b | ||
|
|
c7d2242d98 | ||
|
|
4d76ca5e3a | ||
|
|
0c014bfd3a | ||
|
|
507c1e9e86 | ||
|
|
cbad6eeeab | ||
|
|
ac861159ca | ||
|
|
f182793f33 | ||
|
|
9e6bef580f | ||
|
|
df2a70c73b | ||
|
|
3e5d6a98ef | ||
|
|
a2c5fdd9e8 | ||
|
|
6b11b1ff26 | ||
|
|
f9e6665820 |
||
|
|
17aa2db63d |
||
|
|
1ee4720bca | ||
|
|
67f63a5ca4 | ||
|
|
5dfc50845c | ||
|
|
c7b20eb399 | ||
|
|
ebf644594c | ||
|
|
eadff202bc |
||
|
|
9d7d233bf9 | ||
|
|
8086e64036 | ||
|
|
509bd67e3d | ||
|
|
895d076624 | ||
|
|
50039757c0 | ||
|
|
8dd747fded | ||
|
|
92d1203917 | ||
|
|
bcfb1b554d | ||
|
|
d26d504519 |
||
|
|
c6814312f9 |
||
|
|
4ac8f5f7a9 | ||
|
|
a09a33c9f5 | ||
|
|
3c2253dc6d | ||
|
|
042464a929 | ||
|
|
dcab69a1fb | ||
|
|
2c14e84f08 | ||
|
|
81b08b87c0 | ||
|
|
437b080e9a | ||
|
|
c9a0a107d9 | ||
|
|
4f98a322c2 | ||
|
|
648b4c8601 |
||
|
|
fa6bf827b2 | ||
|
|
22482fb18b |
||
|
|
dc422cf7ed | ||
|
|
e06dcb57e7 | ||
|
|
6b7ef25742 | ||
|
|
7b19a66f3c |
||
|
|
09e4addde4 | ||
|
|
4684ea4866 | ||
|
|
d663542b40 | ||
|
|
37ad20102e |
||
|
|
85802ca9d7 | ||
|
|
a074333d28 | ||
|
|
6a0f0e431a | ||
|
|
d2918af2e6 | ||
|
|
49b1bc1549 | ||
|
|
afd3ea3bea | ||
|
|
f36c5ca8dc | ||
|
|
2fe9ae6400 | ||
|
|
baf8fefda7 | ||
|
|
9b73a80599 | ||
|
|
248ea8cdf4 | ||
|
|
5349e70f0a | ||
|
|
7ef5a567fa | ||
|
|
7de0bef650 | ||
|
|
253f3b5e24 | ||
|
|
e8a62759b3 | ||
|
|
a170e2f896 | ||
|
|
3c50298685 | ||
|
|
ba27e114c2 | ||
|
|
d5ced8a4cf | ||
|
|
bdca143d24 | ||
|
|
345ed6c98e | ||
|
|
540f6e7795 | ||
|
|
a96f20b524 | ||
|
|
21561ba82c | ||
|
|
c649b7d724 | ||
|
|
e2f4733fc4 | ||
|
|
168feccb11 | ||
|
|
cd3efeaff4 | ||
|
|
a22abdb1f3 | ||
|
|
ba94a9992a | ||
|
|
04b13c6fc9 | ||
|
|
ba52311fcb | ||
|
|
ee087b960d | ||
|
|
61650c58f2 | ||
|
|
55488e54c7 | ||
|
|
46dc322c41 | ||
|
|
820caf519c | ||
|
|
52400fcf42 | ||
|
|
58ac8d6e9a | ||
|
|
ef5d23d3b1 | ||
|
|
b52e1a767a | ||
|
|
a6a1fceb2c | ||
|
|
d01f0fa520 | ||
|
|
66b169ccf2 | ||
|
|
207cb13ae3 | ||
|
|
9705d07480 | ||
|
|
071dfeb34c | ||
|
|
9d664f2339 | ||
|
|
a8bf279ba2 | ||
|
|
34dad7f6af | ||
|
|
b72e3399f7 | ||
|
|
91cb6cb2c1 | ||
|
|
bc96715ec7 | ||
|
|
f986ffa0b7 | ||
|
|
6d542d86f0 |
54 changed files with 1452 additions and 97911 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
1
|
||||||
44
.gitignore
vendored
44
.gitignore
vendored
|
|
@ -43,3 +43,47 @@ abrt-1.1.13.tar.gz
|
||||||
/abrt-2.5.1.tar.gz
|
/abrt-2.5.1.tar.gz
|
||||||
/abrt-2.6.0.tar.gz
|
/abrt-2.6.0.tar.gz
|
||||||
/abrt-2.6.1.tar.gz
|
/abrt-2.6.1.tar.gz
|
||||||
|
/abrt-2.6.2.tar.gz
|
||||||
|
/abrt-2.7.0.tar.gz
|
||||||
|
/abrt-2.7.1.tar.gz
|
||||||
|
/abrt-2.7.2.tar.gz
|
||||||
|
/abrt-2.8.0.tar.gz
|
||||||
|
/abrt-2.8.1.tar.gz
|
||||||
|
/abrt-2.8.2.tar.gz
|
||||||
|
/abrt-2.9.0.tar.gz
|
||||||
|
/abrt-2.10.0.tar.gz
|
||||||
|
/abrt-2.10.1.tar.gz
|
||||||
|
/abrt-2.10.2.tar.gz
|
||||||
|
/abrt-2.10.3.tar.gz
|
||||||
|
/abrt-2.10.4.tar.gz
|
||||||
|
/abrt-2.10.5.tar.gz
|
||||||
|
/abrt-2.10.6.tar.gz
|
||||||
|
/abrt-2.10.7.tar.gz
|
||||||
|
/abrt-2.10.8.tar.gz
|
||||||
|
/abrt-2.10.9.tar.gz
|
||||||
|
/abrt-2.10.10.tar.gz
|
||||||
|
/abrt-2.11.0.tar.gz
|
||||||
|
/abrt-2.11.1.tar.gz
|
||||||
|
/abrt-2.12.0.tar.gz
|
||||||
|
/abrt-2.12.1.tar.gz
|
||||||
|
/abrt-2.12.2.tar.gz
|
||||||
|
/abrt-2.13.0.tar.gz
|
||||||
|
/abrt-2.14.0.tar.gz
|
||||||
|
/abrt-2.14.1.tar.gz
|
||||||
|
/abrt-2.14.2.tar.gz
|
||||||
|
/abrt-2.14.3.tar.gz
|
||||||
|
/abrt-2.14.4.tar.gz
|
||||||
|
/abrt-2.14.5.tar.gz
|
||||||
|
/abrt-2.14.6.tar.gz
|
||||||
|
/abrt-2.15.0.tar.gz
|
||||||
|
/abrt-2.15.1.tar.gz
|
||||||
|
/abrt-2.16.0.tar.gz
|
||||||
|
/abrt-2.16.1.tar.gz
|
||||||
|
/abrt-2.17.0.tar.gz
|
||||||
|
/abrt-2.17.1.tar.gz
|
||||||
|
/abrt-2.17.2.tar.gz
|
||||||
|
/abrt-2.17.4.tar.gz
|
||||||
|
/abrt-2.17.5.tar.gz
|
||||||
|
/abrt-2.17.6.tar.gz
|
||||||
|
/abrt-2.17.7.tar.gz
|
||||||
|
/abrt-2.17.8.tar.gz
|
||||||
|
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
From 5c21d1e390603fdc56dba33cdc69672b3b75beff Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 8 Jul 2015 14:16:39 +0200
|
|
||||||
Subject: [PATCH] cli: enable authetication for all commands
|
|
||||||
|
|
||||||
I forgot to test the info, rm and status commands when I was working on
|
|
||||||
commit cb770e507f247476651b84ebbef63a5cd4c41d11 and later on I found out
|
|
||||||
that these commands must be updated to work with the system problems.
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/cli/list.c | 2 +-
|
|
||||||
src/cli/rm.c | 41 ++++++++++++++++++++++++++++-------------
|
|
||||||
src/cli/status.c | 3 ++-
|
|
||||||
3 files changed, 31 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
|
||||||
index 31d1835..8bfb3cc 100644
|
|
||||||
--- a/src/cli/list.c
|
|
||||||
+++ b/src/cli/list.c
|
|
||||||
@@ -35,7 +35,7 @@ static problem_data_t *load_problem_data(const char *problem_id)
|
|
||||||
char *name2 = NULL;
|
|
||||||
|
|
||||||
/* First, check if there is a problem with the passed id */
|
|
||||||
- GList *problems = get_problems_over_dbus(/*don't authorize*/false);
|
|
||||||
+ GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
|
||||||
GList *item = g_list_find_custom(problems, problem_id, (GCompareFunc)strcmp);
|
|
||||||
|
|
||||||
/* (git requires at least 5 char hash prefix, we do the same) */
|
|
||||||
diff --git a/src/cli/rm.c b/src/cli/rm.c
|
|
||||||
index fe458ff..37d50e2 100644
|
|
||||||
--- a/src/cli/rm.c
|
|
||||||
+++ b/src/cli/rm.c
|
|
||||||
@@ -19,12 +19,39 @@
|
|
||||||
|
|
||||||
#include "libabrt.h"
|
|
||||||
#include "builtin-cmd.h"
|
|
||||||
+#include "abrt-cli-core.h"
|
|
||||||
|
|
||||||
/* TODO npajkovs:
|
|
||||||
* add -n, --dry-run
|
|
||||||
* add -q, --quite
|
|
||||||
*/
|
|
||||||
|
|
||||||
+static int remove_using_dbus(const char **dirs_strv)
|
|
||||||
+{
|
|
||||||
+ GList *dirs = NULL;
|
|
||||||
+ while (*dirs_strv)
|
|
||||||
+ dirs = g_list_prepend(dirs, (void *)*dirs_strv++);
|
|
||||||
+ const int ret = delete_problem_dirs_over_dbus(dirs);
|
|
||||||
+ g_list_free(dirs);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int remove_using_abrtd_or_fs(const char **dirs_strv)
|
|
||||||
+{
|
|
||||||
+ int errs = 0;
|
|
||||||
+ while (*dirs_strv)
|
|
||||||
+ {
|
|
||||||
+ int status;
|
|
||||||
+ const char *rm_dir = *dirs_strv++;
|
|
||||||
+ status = delete_dump_dir_possibly_using_abrtd(rm_dir);
|
|
||||||
+ if (!status)
|
|
||||||
+ log("rm '%s'", rm_dir);
|
|
||||||
+ else
|
|
||||||
+ errs++;
|
|
||||||
+ }
|
|
||||||
+ return errs;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int cmd_remove(int argc, const char **argv)
|
|
||||||
{
|
|
||||||
const char *program_usage_string = _(
|
|
||||||
@@ -42,17 +69,5 @@ int cmd_remove(int argc, const char **argv)
|
|
||||||
if (!argv[0])
|
|
||||||
show_usage_and_die(program_usage_string, program_options);
|
|
||||||
|
|
||||||
- int errs = 0;
|
|
||||||
- while (*argv)
|
|
||||||
- {
|
|
||||||
- int status;
|
|
||||||
- const char *rm_dir = *argv++;
|
|
||||||
- status = delete_dump_dir_possibly_using_abrtd(rm_dir);
|
|
||||||
- if (!status)
|
|
||||||
- log("rm '%s'", rm_dir);
|
|
||||||
- else
|
|
||||||
- errs++;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return errs;
|
|
||||||
+ return (g_cli_authenticate ? remove_using_dbus : remove_using_abrtd_or_fs)(argv);
|
|
||||||
}
|
|
||||||
diff --git a/src/cli/status.c b/src/cli/status.c
|
|
||||||
index a65ba05..0635289 100644
|
|
||||||
--- a/src/cli/status.c
|
|
||||||
+++ b/src/cli/status.c
|
|
||||||
@@ -20,12 +20,13 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include "problem_api.h"
|
|
||||||
+#include "abrt-cli-core.h"
|
|
||||||
|
|
||||||
static unsigned int count_problem_dirs(unsigned long since)
|
|
||||||
{
|
|
||||||
unsigned count = 0;
|
|
||||||
|
|
||||||
- GList *problems = get_problems_over_dbus(/*don't authorize*/false);
|
|
||||||
+ GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
|
||||||
for (GList *iter = problems; iter != NULL; iter = g_list_next(iter))
|
|
||||||
{
|
|
||||||
const char *problem_id = (const char *)iter->data;
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
From de12e078fc167fd1a818b101c1a21fcedf32a1a5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 8 Jul 2015 17:03:55 +0200
|
|
||||||
Subject: [PATCH] cli: remove useless code from print_crash()
|
|
||||||
|
|
||||||
Revealed by coverity.
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/cli/list.c | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
|
||||||
index 8bfb3cc..e8ec37b 100644
|
|
||||||
--- a/src/cli/list.c
|
|
||||||
+++ b/src/cli/list.c
|
|
||||||
@@ -63,11 +63,10 @@ static void print_crash(problem_data_t *problem_data, int detailed, int text_siz
|
|
||||||
char *desc;
|
|
||||||
if (detailed)
|
|
||||||
{
|
|
||||||
- int show_multiline = (detailed ? MAKEDESC_SHOW_MULTILINE : 0);
|
|
||||||
desc = make_description(problem_data,
|
|
||||||
/*names_to_skip:*/ NULL,
|
|
||||||
/*max_text_size:*/ text_size,
|
|
||||||
- MAKEDESC_SHOW_FILES | show_multiline);
|
|
||||||
+ MAKEDESC_SHOW_FILES | MAKEDESC_SHOW_MULTILINE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,216 +0,0 @@
|
||||||
From cd698516de709ee3d8480fd7990a8082dffddb45 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 8 Jul 2015 17:04:41 +0200
|
|
||||||
Subject: [PATCH] cli: use internal command impl in the command process
|
|
||||||
|
|
||||||
It did not seem to be a good idea to add wrappers for the internal
|
|
||||||
commands, because the wrappers would be one line functions. Now, we need
|
|
||||||
to do more sophisticated processing (authenticate, chown), so adding the
|
|
||||||
wrappers is the best choice to provide the same functionality in the
|
|
||||||
command process.
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/cli/builtin-cmd.h | 3 +++
|
|
||||||
src/cli/list.c | 8 ++++++-
|
|
||||||
src/cli/process.c | 16 ++++---------
|
|
||||||
src/cli/report.c | 65 +++++++++++++++++++++++++++------------------------
|
|
||||||
src/cli/rm.c | 7 +++++-
|
|
||||||
5 files changed, 56 insertions(+), 43 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/cli/builtin-cmd.h b/src/cli/builtin-cmd.h
|
|
||||||
index bc80479..c6cd691 100644
|
|
||||||
--- a/src/cli/builtin-cmd.h
|
|
||||||
+++ b/src/cli/builtin-cmd.h
|
|
||||||
@@ -22,8 +22,11 @@
|
|
||||||
|
|
||||||
extern int cmd_list(int argc, const char **argv);
|
|
||||||
extern int cmd_remove(int argc, const char **argv);
|
|
||||||
+extern int _cmd_remove(const char **dirs_strv);
|
|
||||||
extern int cmd_report(int argc, const char **argv);
|
|
||||||
+extern int _cmd_report(const char **dirs_strv, int remove);
|
|
||||||
extern int cmd_info(int argc, const char **argv);
|
|
||||||
+extern int _cmd_info(problem_data_t *problem_data, int detailed, int text_size);
|
|
||||||
extern int cmd_status(int argc, const char **argv);
|
|
||||||
extern int cmd_process(int argc, const char **argv);
|
|
||||||
|
|
||||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
|
||||||
index e8ec37b..68dda47 100644
|
|
||||||
--- a/src/cli/list.c
|
|
||||||
+++ b/src/cli/list.c
|
|
||||||
@@ -168,6 +168,12 @@ int cmd_list(int argc, const char **argv)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+int _cmd_info(problem_data_t *problem_data, int detailed, int text_size)
|
|
||||||
+{
|
|
||||||
+ print_crash(problem_data, detailed, text_size);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int cmd_info(int argc, const char **argv)
|
|
||||||
{
|
|
||||||
const char *program_usage_string = _(
|
|
||||||
@@ -205,7 +211,7 @@ int cmd_info(int argc, const char **argv)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- print_crash(problem, opt_detailed, text_size);
|
|
||||||
+ _cmd_info(problem, opt_detailed, text_size);
|
|
||||||
problem_data_free(problem);
|
|
||||||
if (*argv)
|
|
||||||
printf("\n");
|
|
||||||
diff --git a/src/cli/process.c b/src/cli/process.c
|
|
||||||
index 39462f9..401ef60 100644
|
|
||||||
--- a/src/cli/process.c
|
|
||||||
+++ b/src/cli/process.c
|
|
||||||
@@ -68,28 +68,22 @@ static int process_one_crash(problem_data_t *problem_data)
|
|
||||||
if(strcmp(action, "rm") == 0 || strcmp(action, "remove") == 0 )
|
|
||||||
{
|
|
||||||
log(_("Deleting '%s'"), dir_name);
|
|
||||||
- delete_dump_dir_possibly_using_abrtd(dir_name);
|
|
||||||
+ const char *dirs_strv[] = {dir_name, NULL};
|
|
||||||
+ _cmd_remove(dirs_strv);
|
|
||||||
|
|
||||||
ret_val = ACT_REMOVE;
|
|
||||||
}
|
|
||||||
else if (not_reportable == NULL && (strcmp(action, "e") == 0 || strcmp(action, "report") == 0))
|
|
||||||
{
|
|
||||||
log(_("Reporting '%s'"), dir_name);
|
|
||||||
- report_problem_in_dir(dir_name,
|
|
||||||
- LIBREPORT_WAIT
|
|
||||||
- | LIBREPORT_RUN_CLI);
|
|
||||||
+ const char *dirs_strv[] = {dir_name, NULL};
|
|
||||||
+ _cmd_report(dirs_strv, /*do not delete*/0);
|
|
||||||
|
|
||||||
ret_val = ACT_REPORT;
|
|
||||||
}
|
|
||||||
else if (strcmp(action, "i") == 0 || strcmp(action, "info") == 0)
|
|
||||||
{
|
|
||||||
- char *desc = make_description(problem_data,
|
|
||||||
- /*names_to_skip:*/ NULL,
|
|
||||||
- /*max_text_size:*/ CD_TEXT_ATT_SIZE_BZ,
|
|
||||||
- MAKEDESC_SHOW_FILES | MAKEDESC_SHOW_MULTILINE);
|
|
||||||
-
|
|
||||||
- fputs(desc, stdout);
|
|
||||||
- free(desc);
|
|
||||||
+ _cmd_info(problem_data, /*detailed*/1, CD_TEXT_ATT_SIZE_BZ);
|
|
||||||
|
|
||||||
ret_val = ACT_INFO;
|
|
||||||
}
|
|
||||||
diff --git a/src/cli/report.c b/src/cli/report.c
|
|
||||||
index 194f7c9..19b4c51 100644
|
|
||||||
--- a/src/cli/report.c
|
|
||||||
+++ b/src/cli/report.c
|
|
||||||
@@ -22,38 +22,12 @@
|
|
||||||
#include "abrt-cli-core.h"
|
|
||||||
#include "builtin-cmd.h"
|
|
||||||
|
|
||||||
-int cmd_report(int argc, const char **argv)
|
|
||||||
+int _cmd_report(const char **dirs_strv, int remove)
|
|
||||||
{
|
|
||||||
- const char *program_usage_string = _(
|
|
||||||
- "& report [options] DIR..."
|
|
||||||
- );
|
|
||||||
-
|
|
||||||
- enum {
|
|
||||||
- OPT_v = 1 << 0,
|
|
||||||
- OPT_d = 1 << 1,
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- struct options program_options[] = {
|
|
||||||
- OPT__VERBOSE(&g_verbose),
|
|
||||||
- OPT_BOOL('d', "delete", NULL, _("Remove PROBLEM_DIR after reporting")),
|
|
||||||
- OPT_END()
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- unsigned opts = parse_opts(argc, (char **)argv, program_options, program_usage_string);
|
|
||||||
- argv += optind;
|
|
||||||
-
|
|
||||||
- if (!argv[0])
|
|
||||||
- show_usage_and_die(program_usage_string, program_options);
|
|
||||||
-
|
|
||||||
- export_abrt_envvars(/*prog_prefix:*/ 0);
|
|
||||||
-
|
|
||||||
- load_abrt_conf();
|
|
||||||
- free_abrt_conf_data();
|
|
||||||
-
|
|
||||||
int ret = 0;
|
|
||||||
- while (*argv)
|
|
||||||
+ while (*dirs_strv)
|
|
||||||
{
|
|
||||||
- const char *dir_name = *argv++;
|
|
||||||
+ const char *dir_name = *dirs_strv++;
|
|
||||||
char *const real_problem_id = hash2dirname_if_necessary(dir_name);
|
|
||||||
if (real_problem_id == NULL)
|
|
||||||
{
|
|
||||||
@@ -75,7 +49,7 @@ int cmd_report(int argc, const char **argv)
|
|
||||||
| LIBREPORT_RUN_CLI);
|
|
||||||
|
|
||||||
/* the problem was successfully reported and option is -d */
|
|
||||||
- if((opts & OPT_d) && (status == 0 || status == EXIT_STOP_EVENT_RUN))
|
|
||||||
+ if(remove && (status == 0 || status == EXIT_STOP_EVENT_RUN))
|
|
||||||
{
|
|
||||||
log(_("Deleting '%s'"), real_problem_id);
|
|
||||||
delete_dump_dir_possibly_using_abrtd(real_problem_id);
|
|
||||||
@@ -89,3 +63,34 @@ int cmd_report(int argc, const char **argv)
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+int cmd_report(int argc, const char **argv)
|
|
||||||
+{
|
|
||||||
+ const char *program_usage_string = _(
|
|
||||||
+ "& report [options] DIR..."
|
|
||||||
+ );
|
|
||||||
+
|
|
||||||
+ enum {
|
|
||||||
+ OPT_v = 1 << 0,
|
|
||||||
+ OPT_d = 1 << 1,
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ struct options program_options[] = {
|
|
||||||
+ OPT__VERBOSE(&g_verbose),
|
|
||||||
+ OPT_BOOL('d', "delete", NULL, _("Remove PROBLEM_DIR after reporting")),
|
|
||||||
+ OPT_END()
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ unsigned opts = parse_opts(argc, (char **)argv, program_options, program_usage_string);
|
|
||||||
+ argv += optind;
|
|
||||||
+
|
|
||||||
+ if (!argv[0])
|
|
||||||
+ show_usage_and_die(program_usage_string, program_options);
|
|
||||||
+
|
|
||||||
+ export_abrt_envvars(/*prog_prefix:*/ 0);
|
|
||||||
+
|
|
||||||
+ load_abrt_conf();
|
|
||||||
+ free_abrt_conf_data();
|
|
||||||
+
|
|
||||||
+ return _cmd_report(argv, opts & OPT_d);
|
|
||||||
+}
|
|
||||||
diff --git a/src/cli/rm.c b/src/cli/rm.c
|
|
||||||
index 37d50e2..95ae097 100644
|
|
||||||
--- a/src/cli/rm.c
|
|
||||||
+++ b/src/cli/rm.c
|
|
||||||
@@ -52,6 +52,11 @@ static int remove_using_abrtd_or_fs(const char **dirs_strv)
|
|
||||||
return errs;
|
|
||||||
}
|
|
||||||
|
|
||||||
+int _cmd_remove(const char **dirs_strv)
|
|
||||||
+{
|
|
||||||
+ return (g_cli_authenticate ? remove_using_dbus : remove_using_abrtd_or_fs)(dirs_strv);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int cmd_remove(int argc, const char **argv)
|
|
||||||
{
|
|
||||||
const char *program_usage_string = _(
|
|
||||||
@@ -69,5 +74,5 @@ int cmd_remove(int argc, const char **argv)
|
|
||||||
if (!argv[0])
|
|
||||||
show_usage_and_die(program_usage_string, program_options);
|
|
||||||
|
|
||||||
- return (g_cli_authenticate ? remove_using_dbus : remove_using_abrtd_or_fs)(argv);
|
|
||||||
+ return _cmd_remove(argv);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
From 23c6702959b763f6abbc3c853676c6aeedd6d3fe Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Mon, 13 Jul 2015 11:25:17 +0200
|
|
||||||
Subject: [PATCH] a-dump-oops: allow update the problem, if more then one oops
|
|
||||||
found
|
|
||||||
|
|
||||||
In case that found more than one oops process the first one.
|
|
||||||
Without this patch the script exits with error in this case because expects
|
|
||||||
only one oops.
|
|
||||||
|
|
||||||
Related to rhbz#1170534
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/abrt-dump-oops.c | 16 +++++++++++-----
|
|
||||||
1 file changed, 11 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-dump-oops.c b/src/plugins/abrt-dump-oops.c
|
|
||||||
index 58650cb..a348923 100644
|
|
||||||
--- a/src/plugins/abrt-dump-oops.c
|
|
||||||
+++ b/src/plugins/abrt-dump-oops.c
|
|
||||||
@@ -172,6 +172,17 @@ int main(int argc, char **argv)
|
|
||||||
log("Updating problem directory");
|
|
||||||
switch (g_list_length(oops_list))
|
|
||||||
{
|
|
||||||
+ case 0:
|
|
||||||
+ {
|
|
||||||
+ error_msg(_("Can't update the problem: no oops found"));
|
|
||||||
+ errors = 1;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ default:
|
|
||||||
+ {
|
|
||||||
+ log_notice(_("More oopses found: process only the first one"));
|
|
||||||
+ }
|
|
||||||
+ /* falls trought */
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
struct dump_dir *dd = dd_opendir(problem_dir, /*open for writing*/0);
|
|
||||||
@@ -181,11 +192,6 @@ int main(int argc, char **argv)
|
|
||||||
dd_close(dd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- break;
|
|
||||||
- default:
|
|
||||||
- error_msg(_("Can't update the problem: more than one oops found"));
|
|
||||||
- errors = 1;
|
|
||||||
- break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,117 +0,0 @@
|
||||||
From 883d35109b55928d4c36d3cd6ee262d7cdc5bd4d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 15 Jul 2015 10:20:59 +0200
|
|
||||||
Subject: [PATCH] abrtd: de-prioritize post-create event scripts
|
|
||||||
|
|
||||||
The crash processing should not make the computer unusable. It sometimes
|
|
||||||
happens that the captured data causes abrt scripts to take an inadequate
|
|
||||||
amount of resources and the computer becomes less responsive.
|
|
||||||
|
|
||||||
This patch increases the nice value of post-create processes by 10 (I took
|
|
||||||
10 because it is the default value of command 'nice'), so those
|
|
||||||
processes will be scheduled after the more valuable processes.
|
|
||||||
|
|
||||||
Related: rhbz#1236422
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
doc/abrtd.txt | 7 +++++++
|
|
||||||
src/daemon/abrt-handle-event.c | 19 ++++++++++++++++++-
|
|
||||||
src/daemon/abrt-server.c | 14 ++++++++------
|
|
||||||
3 files changed, 33 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/abrtd.txt b/doc/abrtd.txt
|
|
||||||
index b129d3e..32d044b 100644
|
|
||||||
--- a/doc/abrtd.txt
|
|
||||||
+++ b/doc/abrtd.txt
|
|
||||||
@@ -36,6 +36,13 @@ OPTIONS
|
|
||||||
-p::
|
|
||||||
Add program names to log.
|
|
||||||
|
|
||||||
+ENVIRONMENT
|
|
||||||
+-----------
|
|
||||||
+ABRT_EVENT_NICE::
|
|
||||||
+ 'abrtd' runs its post-mortem processing with the nice value incremented by 10
|
|
||||||
+ in order to not take too much resources and keep the computer responsive. If
|
|
||||||
+ you want to adjust the increment value, use the ABRT_EVENT_NICE environment
|
|
||||||
+ variable.
|
|
||||||
|
|
||||||
CAVEATS
|
|
||||||
-------
|
|
||||||
diff --git a/src/daemon/abrt-handle-event.c b/src/daemon/abrt-handle-event.c
|
|
||||||
index 4a21aa4..fda21bd 100644
|
|
||||||
--- a/src/daemon/abrt-handle-event.c
|
|
||||||
+++ b/src/daemon/abrt-handle-event.c
|
|
||||||
@@ -403,16 +403,18 @@ int main(int argc, char **argv)
|
|
||||||
abrt_init(argv);
|
|
||||||
|
|
||||||
const char *program_usage_string = _(
|
|
||||||
- "& [-v -i] -e|--event EVENT DIR..."
|
|
||||||
+ "& [-v -i -n INCREMENT] -e|--event EVENT DIR..."
|
|
||||||
);
|
|
||||||
|
|
||||||
char *event_name = NULL;
|
|
||||||
int interactive = 0; /* must be _int_, OPT_BOOL expects that! */
|
|
||||||
+ int nice_incr = 0;
|
|
||||||
|
|
||||||
struct options program_options[] = {
|
|
||||||
OPT__VERBOSE(&g_verbose),
|
|
||||||
OPT_STRING('e', "event" , &event_name, "EVENT", _("Run EVENT on DIR")),
|
|
||||||
OPT_BOOL('i', "interactive" , &interactive, _("Communicate directly to the user")),
|
|
||||||
+ OPT_INTEGER('n', "nice" , &nice_incr, _("Increment the nice value by INCREMENT")),
|
|
||||||
OPT_END()
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -423,6 +425,21 @@ int main(int argc, char **argv)
|
|
||||||
|
|
||||||
load_abrt_conf();
|
|
||||||
|
|
||||||
+ const char *const opt_env_nice = getenv("ABRT_EVENT_NICE");
|
|
||||||
+ if (opt_env_nice != NULL && opt_env_nice[0] != '\0')
|
|
||||||
+ {
|
|
||||||
+ log_debug("Using ABRT_EVENT_NICE=%s to increment the nice value", opt_env_nice);
|
|
||||||
+ nice_incr = xatoi(opt_env_nice);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (nice_incr != 0)
|
|
||||||
+ {
|
|
||||||
+ log_debug("Incrementing the nice value by %d", nice_incr);
|
|
||||||
+ const int ret = nice(nice_incr);
|
|
||||||
+ if (ret == -1)
|
|
||||||
+ perror_msg_and_die("Failed to increment the nice value");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
bool post_create = (strcmp(event_name, "post-create") == 0);
|
|
||||||
char *dump_dir_name = NULL;
|
|
||||||
while (*argv)
|
|
||||||
diff --git a/src/daemon/abrt-server.c b/src/daemon/abrt-server.c
|
|
||||||
index d7556e2..9f177e9 100644
|
|
||||||
--- a/src/daemon/abrt-server.c
|
|
||||||
+++ b/src/daemon/abrt-server.c
|
|
||||||
@@ -126,15 +126,17 @@ static int delete_path(const char *dump_dir_name)
|
|
||||||
|
|
||||||
static pid_t spawn_event_handler_child(const char *dump_dir_name, const char *event_name, int *fdp)
|
|
||||||
{
|
|
||||||
- char *args[7];
|
|
||||||
+ char *args[9];
|
|
||||||
args[0] = (char *) LIBEXEC_DIR"/abrt-handle-event";
|
|
||||||
/* Do not forward ASK_* messages to parent*/
|
|
||||||
args[1] = (char *) "-i";
|
|
||||||
- args[2] = (char *) "-e";
|
|
||||||
- args[3] = (char *) event_name;
|
|
||||||
- args[4] = (char *) "--";
|
|
||||||
- args[5] = (char *) dump_dir_name;
|
|
||||||
- args[6] = NULL;
|
|
||||||
+ args[2] = (char *) "--nice";
|
|
||||||
+ args[3] = (char *) "10";
|
|
||||||
+ args[4] = (char *) "-e";
|
|
||||||
+ args[5] = (char *) event_name;
|
|
||||||
+ args[6] = (char *) "--";
|
|
||||||
+ args[7] = (char *) dump_dir_name;
|
|
||||||
+ args[8] = NULL;
|
|
||||||
|
|
||||||
int pipeout[2];
|
|
||||||
int flags = EXECFLG_INPUT_NUL | EXECFLG_OUTPUT | EXECFLG_QUIET | EXECFLG_ERR2OUT;
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,473 +0,0 @@
|
||||||
From 9d9e0b94573e668bc242a68f4007e67c3eef4ddf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Laura Abbott <labbott@fedoraproject.org>
|
|
||||||
Date: Wed, 27 May 2015 16:27:32 -0700
|
|
||||||
Subject: [PATCH] abrt: Fixup component of select kernel backtraces
|
|
||||||
|
|
||||||
The kernel is a big project and certain parts of it
|
|
||||||
may need to be tracked under different components.
|
|
||||||
Fixup results related to those parts and assign a
|
|
||||||
different component.
|
|
||||||
|
|
||||||
Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
|
|
||||||
|
|
||||||
- ported to Python 3
|
|
||||||
- removed a left over
|
|
||||||
- extended a log message
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
.gitignore | 1 +
|
|
||||||
abrt.spec.in | 1 +
|
|
||||||
configure.ac | 1 +
|
|
||||||
examples/oops-32bit-graphics.right | 73 +++++++++++++++++
|
|
||||||
examples/oops-32bit-graphics.test | 71 +++++++++++++++++
|
|
||||||
examples/oops-noveau.right | 39 +++++++++
|
|
||||||
examples/oops-noveau.test | 38 +++++++++
|
|
||||||
src/plugins/Makefile.am | 3 +
|
|
||||||
.../abrt-action-check-oops-for-alt-component.in | 93 ++++++++++++++++++++++
|
|
||||||
src/plugins/koops_event.conf | 3 +
|
|
||||||
src/plugins/vmcore_event.conf | 1 +
|
|
||||||
11 files changed, 324 insertions(+)
|
|
||||||
create mode 100644 examples/oops-32bit-graphics.right
|
|
||||||
create mode 100644 examples/oops-32bit-graphics.test
|
|
||||||
create mode 100644 examples/oops-noveau.right
|
|
||||||
create mode 100644 examples/oops-noveau.test
|
|
||||||
create mode 100644 src/plugins/abrt-action-check-oops-for-alt-component.in
|
|
||||||
|
|
||||||
diff --git a/.gitignore b/.gitignore
|
|
||||||
index 66410cb..f5a93e4 100644
|
|
||||||
--- a/.gitignore
|
|
||||||
+++ b/.gitignore
|
|
||||||
@@ -30,6 +30,7 @@ src/plugins/abrt-action-analyze-python
|
|
||||||
src/plugins/abrt-action-analyze-vmcore
|
|
||||||
src/plugins/abrt-action-analyze-xorg
|
|
||||||
src/plugins/abrt-action-check-oops-for-hw-error
|
|
||||||
+src/plugins/abrt-action-check-oops-for-alt-component
|
|
||||||
src/plugins/abrt-action-generate-backtrace
|
|
||||||
src/plugins/abrt-action-install-debuginfo-to-abrt-cache
|
|
||||||
src/plugins/abrt-action-perform-ccpp-analysis
|
|
||||||
diff --git a/abrt.spec.in b/abrt.spec.in
|
|
||||||
index 08eb93f..c73eaf6 100644
|
|
||||||
--- a/abrt.spec.in
|
|
||||||
+++ b/abrt.spec.in
|
|
||||||
@@ -975,6 +975,7 @@ killall abrt-dbus >/dev/null 2>&1 || :
|
|
||||||
%endif
|
|
||||||
%{_sbindir}/abrt-harvest-vmcore
|
|
||||||
%{_bindir}/abrt-action-analyze-vmcore
|
|
||||||
+%{_bindir}/abrt-action-check-oops-for-alt-component
|
|
||||||
%{_bindir}/abrt-action-check-oops-for-hw-error
|
|
||||||
%{_mandir}/man1/abrt-harvest-vmcore.1*
|
|
||||||
%{_mandir}/man5/abrt-vmcore.conf.5*
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 2958807..b372e12 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -429,6 +429,7 @@ AC_CONFIG_FILES([
|
|
||||||
src/plugins/abrt-action-install-debuginfo
|
|
||||||
src/plugins/abrt-action-analyze-vmcore
|
|
||||||
src/plugins/abrt-action-check-oops-for-hw-error
|
|
||||||
+ src/plugins/abrt-action-check-oops-for-alt-component
|
|
||||||
src/python-problem/Makefile
|
|
||||||
src/python-problem/doc/Makefile
|
|
||||||
src/python-problem/tests/Makefile
|
|
||||||
diff --git a/examples/oops-32bit-graphics.right b/examples/oops-32bit-graphics.right
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..9891d02
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/oops-32bit-graphics.right
|
|
||||||
@@ -0,0 +1,73 @@
|
|
||||||
+abrt-dump-oops: Found oopses: 2
|
|
||||||
+abrt-dump-oops: Kernel is tainted 'GD'
|
|
||||||
+
|
|
||||||
+Version: 4.0.3-201.fc21.i686+PAE
|
|
||||||
+BUG: unable to handle kernel NULL pointer dereference at 00000008
|
|
||||||
+IP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon]
|
|
||||||
+*pdpt = 0000000033260001 *pde = 0000000000000000
|
|
||||||
+Oops: 0000 [#1] SMP
|
|
||||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
|
||||||
+CPU: 0 PID: 222 Comm: plymouthd Not tainted 4.0.3-201.fc21.i686+PAE #1
|
|
||||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
|
||||||
+task: f325f640 ti: f33b8000 task.ti: f33b8000
|
|
||||||
+EIP: 0060:[<f83f9f24>] EFLAGS: 00010246 CPU: 0
|
|
||||||
+EIP is at radeon_audio_detect+0x54/0x140 [radeon]
|
|
||||||
+EAX: f6884240 EBX: f339dc00 ECX: 00000000 EDX: 00000000
|
|
||||||
+ESI: f3364320 EDI: f681c000 EBP: f33b9d14 ESP: f33b9d04
|
|
||||||
+ DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
|
|
||||||
+CR0: 80050033 CR2: 00000008 CR3: 33209000 CR4: 000007f0
|
|
||||||
+Stack:
|
|
||||||
+ f6884240 f339dc00 00000001 f7374800 f33b9d48 f833bb78 00000001 f33be600
|
|
||||||
+ 4ac04888 00000000 f33be600 f33b9d68 00000001 f681c000 f339dc30 f339dc00
|
|
||||||
+ 00000001 f33b9d94 f809287b f3259580 f775d500 f325f640 f33b9fec f33e0540
|
|
||||||
+Call Trace:
|
|
||||||
+ [<f833bb78>] radeon_dvi_detect+0x2d8/0x4b0 [radeon]
|
|
||||||
+ [<f809287b>] drm_helper_probe_single_connector_modes_merge_bits+0x27b/0x4a0 [drm_kms_helper]
|
|
||||||
+ [<c0a8abc0>] ? mutex_lock+0x10/0x30
|
|
||||||
+ [<f8092ab7>] drm_helper_probe_single_connector_modes+0x17/0x20 [drm_kms_helper]
|
|
||||||
+ [<f80c5f2d>] drm_mode_getconnector+0x28d/0x320 [drm]
|
|
||||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
|
||||||
+ [<f80b81a5>] drm_ioctl+0x1f5/0x560 [drm]
|
|
||||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
|
||||||
+ [<c05064a7>] ? do_seccomp+0x2d7/0x6e0
|
|
||||||
+ [<c07043a6>] ? _copy_to_user+0x26/0x30
|
|
||||||
+ [<c0823931>] ? __pm_runtime_resume+0x51/0x70
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<f831503e>] radeon_drm_ioctl+0x3e/0x70 [radeon]
|
|
||||||
+ [<f8315000>] ? 0xf8315000
|
|
||||||
+ [<c05b69b2>] do_vfs_ioctl+0x322/0x540
|
|
||||||
+ [<c0690c42>] ? inode_has_perm.isra.32+0x32/0x50
|
|
||||||
+ [<c0690da7>] ? file_has_perm+0x97/0xa0
|
|
||||||
+ [<c06919cb>] ? selinux_file_ioctl+0x4b/0xe0
|
|
||||||
+ [<c05b6c30>] SyS_ioctl+0x60/0x90
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+Code: 44 8b 93 0c 02 00 00 8b 02 8b b2 20 01 00 00 8b 78 18 8b 86 e4 00 00 00 85 c0 74 29 83 7d f0 01 74 35 8b 50 10 8b 8f 70 1c 00 00 <8b> 59 08 85 db 74 0c 89 f8 31 c9 ff d3 8b 86 e4 00 00 00 c7 40
|
|
||||||
+EIP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon] SS:ESP 0068:f33b9d04
|
|
||||||
+CR2: 0000000000000008
|
|
||||||
+
|
|
||||||
+Version: 4.0.3-201.fc21.i686+PAE
|
|
||||||
+WARNING: CPU: 1 PID: 263 at lib/list_debug.c:62 __list_del_entry+0xf4/0x100()
|
|
||||||
+list_del corruption. next->prev should be f3215564, but was (null)
|
|
||||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
|
||||||
+CPU: 1 PID: 263 Comm: plymouth Tainted: G D 4.0.3-201.fc21.i686+PAE #1
|
|
||||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
|
||||||
+ c0d3c9c7 b9171629 00000000 f3337eb4 c0a878b6 f3337ef8 f3337ee8 c0466c1b
|
|
||||||
+ c0c929c4 f3337f18 00000107 c0c91c9f 0000003e c0712794 0000003e c0712794
|
|
||||||
+ 00000000 00000001 f32150a0 f3337f04 c0466c8e 00000009 f3337ef8 c0c929c4
|
|
||||||
+Call Trace:
|
|
||||||
+ [<c0a878b6>] dump_stack+0x41/0x52
|
|
||||||
+ [<c0466c1b>] warn_slowpath_common+0x8b/0xc0
|
|
||||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
|
||||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
|
||||||
+ [<c0466c8e>] warn_slowpath_fmt+0x3e/0x60
|
|
||||||
+ [<c0712794>] __list_del_entry+0xf4/0x100
|
|
||||||
+ [<c04e8a63>] cgroup_exit+0x33/0x100
|
|
||||||
+ [<c0469208>] do_exit+0x2b8/0x950
|
|
||||||
+ [<c0457a72>] ? __do_page_fault+0x252/0x4a0
|
|
||||||
+ [<c0469917>] do_group_exit+0x37/0xa0
|
|
||||||
+ [<c0469996>] SyS_exit_group+0x16/0x20
|
|
||||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
|
||||||
diff --git a/examples/oops-32bit-graphics.test b/examples/oops-32bit-graphics.test
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..da3d716
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/oops-32bit-graphics.test
|
|
||||||
@@ -0,0 +1,71 @@
|
|
||||||
+BUG: unable to handle kernel NULL pointer dereference at 00000008
|
|
||||||
+IP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon]
|
|
||||||
+*pdpt = 0000000033260001 *pde = 0000000000000000
|
|
||||||
+Oops: 0000 [#1] SMP
|
|
||||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
|
||||||
+CPU: 0 PID: 222 Comm: plymouthd Not tainted 4.0.3-201.fc21.i686+PAE #1
|
|
||||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
|
||||||
+task: f325f640 ti: f33b8000 task.ti: f33b8000
|
|
||||||
+EIP: 0060:[<f83f9f24>] EFLAGS: 00010246 CPU: 0
|
|
||||||
+EIP is at radeon_audio_detect+0x54/0x140 [radeon]
|
|
||||||
+EAX: f6884240 EBX: f339dc00 ECX: 00000000 EDX: 00000000
|
|
||||||
+ESI: f3364320 EDI: f681c000 EBP: f33b9d14 ESP: f33b9d04
|
|
||||||
+ DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
|
|
||||||
+CR0: 80050033 CR2: 00000008 CR3: 33209000 CR4: 000007f0
|
|
||||||
+Stack:
|
|
||||||
+ f6884240 f339dc00 00000001 f7374800 f33b9d48 f833bb78 00000001 f33be600
|
|
||||||
+ 4ac04888 00000000 f33be600 f33b9d68 00000001 f681c000 f339dc30 f339dc00
|
|
||||||
+ 00000001 f33b9d94 f809287b f3259580 f775d500 f325f640 f33b9fec f33e0540
|
|
||||||
+Call Trace:
|
|
||||||
+ [<f833bb78>] radeon_dvi_detect+0x2d8/0x4b0 [radeon]
|
|
||||||
+ [<f809287b>] drm_helper_probe_single_connector_modes_merge_bits+0x27b/0x4a0 [drm_kms_helper]
|
|
||||||
+ [<c0a8abc0>] ? mutex_lock+0x10/0x30
|
|
||||||
+ [<f8092ab7>] drm_helper_probe_single_connector_modes+0x17/0x20 [drm_kms_helper]
|
|
||||||
+ [<f80c5f2d>] drm_mode_getconnector+0x28d/0x320 [drm]
|
|
||||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
|
||||||
+ [<f80b81a5>] drm_ioctl+0x1f5/0x560 [drm]
|
|
||||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
|
||||||
+ [<c05064a7>] ? do_seccomp+0x2d7/0x6e0
|
|
||||||
+ [<c07043a6>] ? _copy_to_user+0x26/0x30
|
|
||||||
+ [<c0823931>] ? __pm_runtime_resume+0x51/0x70
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<f831503e>] radeon_drm_ioctl+0x3e/0x70 [radeon]
|
|
||||||
+ [<f8315000>] ? 0xf8315000
|
|
||||||
+ [<c05b69b2>] do_vfs_ioctl+0x322/0x540
|
|
||||||
+ [<c0690c42>] ? inode_has_perm.isra.32+0x32/0x50
|
|
||||||
+ [<c0690da7>] ? file_has_perm+0x97/0xa0
|
|
||||||
+ [<c06919cb>] ? selinux_file_ioctl+0x4b/0xe0
|
|
||||||
+ [<c05b6c30>] SyS_ioctl+0x60/0x90
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
|
||||||
+Code: 44 8b 93 0c 02 00 00 8b 02 8b b2 20 01 00 00 8b 78 18 8b 86 e4 00 00 00 85 c0 74 29 83 7d f0 01 74 35 8b 50 10 8b 8f 70 1c 00 00 <8b> 59 08 85 db 74 0c 89 f8 31 c9 ff d3 8b 86 e4 00 00 00 c7 40
|
|
||||||
+EIP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon] SS:ESP 0068:f33b9d04
|
|
||||||
+CR2: 0000000000000008
|
|
||||||
+---[ end trace c37768228d821e9f ]---
|
|
||||||
+------------[ cut here ]------------
|
|
||||||
+WARNING: CPU: 1 PID: 263 at lib/list_debug.c:62 __list_del_entry+0xf4/0x100()
|
|
||||||
+list_del corruption. next->prev should be f3215564, but was (null)
|
|
||||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
|
||||||
+CPU: 1 PID: 263 Comm: plymouth Tainted: G D 4.0.3-201.fc21.i686+PAE #1
|
|
||||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
|
||||||
+ c0d3c9c7 b9171629 00000000 f3337eb4 c0a878b6 f3337ef8 f3337ee8 c0466c1b
|
|
||||||
+ c0c929c4 f3337f18 00000107 c0c91c9f 0000003e c0712794 0000003e c0712794
|
|
||||||
+ 00000000 00000001 f32150a0 f3337f04 c0466c8e 00000009 f3337ef8 c0c929c4
|
|
||||||
+Call Trace:
|
|
||||||
+ [<c0a878b6>] dump_stack+0x41/0x52
|
|
||||||
+ [<c0466c1b>] warn_slowpath_common+0x8b/0xc0
|
|
||||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
|
||||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
|
||||||
+ [<c0466c8e>] warn_slowpath_fmt+0x3e/0x60
|
|
||||||
+ [<c0712794>] __list_del_entry+0xf4/0x100
|
|
||||||
+ [<c04e8a63>] cgroup_exit+0x33/0x100
|
|
||||||
+ [<c0469208>] do_exit+0x2b8/0x950
|
|
||||||
+ [<c0457a72>] ? __do_page_fault+0x252/0x4a0
|
|
||||||
+ [<c0469917>] do_group_exit+0x37/0xa0
|
|
||||||
+ [<c0469996>] SyS_exit_group+0x16/0x20
|
|
||||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
|
||||||
+---[ end trace c37768228d821ea0 ]---
|
|
||||||
+
|
|
||||||
diff --git a/examples/oops-noveau.right b/examples/oops-noveau.right
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..d6c87a2
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/oops-noveau.right
|
|
||||||
@@ -0,0 +1,39 @@
|
|
||||||
+abrt-dump-oops: Found oopses: 1
|
|
||||||
+
|
|
||||||
+Version: 3.19.5-200.fc21.x86_64
|
|
||||||
+WARNING: CPU: 0 PID: 16684 at arch/x86/mm/ioremap.c:197 __ioremap_caller+0x2aa/0x3a0()
|
|
||||||
+Info: mapping multiple BARs. Your kernel is fine.
|
|
||||||
+Modules linked in:
|
|
||||||
+ bnep bluetooth rfkill xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack bridge stp llc snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec fuse snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer edac_core usblp kvm_amd snd serio_raw kvm k10temp edac_mce_amd sp5100_tco i2c_piix4 shpchp soundcore acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ata_generic pata_acpi nouveau video mxm_wmi wmi i2c_algo_bit drm_kms_helper ttm drm pata_atiixp r8169 mii
|
|
||||||
+CPU: 0 PID: 16684 Comm: firefox Not tainted 3.19.5-200.fc21.x86_64 #1
|
|
||||||
+Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./970A-DS3P, BIOS F1 04/08/2013
|
|
||||||
+ 0000000000000000 0000000087b0a5f7 ffff8802e1b9b768 ffffffff8176ead5
|
|
||||||
+ 0000000000000000 ffff8802e1b9b7c0 ffff8802e1b9b7a8 ffffffff8109bc1a
|
|
||||||
+ ffff8802e1b9b7d8 ffffc9001c180000 00000000d206d000 0000000000100000
|
|
||||||
+Call Trace:
|
|
||||||
+ [<ffffffff8176ead5>] dump_stack+0x45/0x57
|
|
||||||
+ [<ffffffff8109bc1a>] warn_slowpath_common+0x8a/0xc0
|
|
||||||
+ [<ffffffff8109bca5>] warn_slowpath_fmt+0x55/0x70
|
|
||||||
+ [<ffffffff810643aa>] __ioremap_caller+0x2aa/0x3a0
|
|
||||||
+ [<ffffffff810644b7>] ioremap_nocache+0x17/0x20
|
|
||||||
+ [<ffffffffa00e8036>] nouveau_barobj_ctor+0xd6/0x110 [nouveau]
|
|
||||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
|
||||||
+ [<ffffffffa00e80af>] nouveau_bar_alloc+0x3f/0x70 [nouveau]
|
|
||||||
+ [<ffffffffa00e3795>] nouveau_gpuobj_create_+0x2a5/0x2f0 [nouveau]
|
|
||||||
+ [<ffffffffa00e382c>] _nouveau_gpuobj_ctor+0x4c/0x70 [nouveau]
|
|
||||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
|
||||||
+ [<ffffffffa00e38ab>] nouveau_gpuobj_new+0x5b/0x80 [nouveau]
|
|
||||||
+ [<ffffffffa0132173>] nouveau_vm_get+0x183/0x2f0 [nouveau]
|
|
||||||
+ [<ffffffff811dd04a>] ? map_vm_area+0x2a/0x40
|
|
||||||
+ [<ffffffffa0182744>] nouveau_bo_vma_add+0x34/0x90 [nouveau]
|
|
||||||
+ [<ffffffffa017aee9>] nouveau_channel_prep+0x269/0x3b0 [nouveau]
|
|
||||||
+ [<ffffffffa017b0b3>] nouveau_channel_new+0x83/0x800 [nouveau]
|
|
||||||
+ [<ffffffffa01782fa>] ? nvif_device_init+0x3a/0x50 [nouveau]
|
|
||||||
+ [<ffffffff811fbba6>] ? kmem_cache_alloc_trace+0x1f6/0x230
|
|
||||||
+ [<ffffffffa0185770>] nouveau_abi16_ioctl_channel_alloc+0x120/0x3a0 [nouveau]
|
|
||||||
+ [<ffffffffa0031a9f>] drm_ioctl+0x1df/0x680 [drm]
|
|
||||||
+ [<ffffffff811cf196>] ? handle_mm_fault+0x8a6/0xff0
|
|
||||||
+ [<ffffffffa0179222>] nouveau_drm_ioctl+0x72/0xd0 [nouveau]
|
|
||||||
+ [<ffffffff8122e318>] do_vfs_ioctl+0x2f8/0x500
|
|
||||||
+ [<ffffffff8122e5a1>] SyS_ioctl+0x81/0xa0
|
|
||||||
+ [<ffffffff817752c9>] system_call_fastpath+0x12/0x17
|
|
||||||
diff --git a/examples/oops-noveau.test b/examples/oops-noveau.test
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..8678a7d
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/oops-noveau.test
|
|
||||||
@@ -0,0 +1,38 @@
|
|
||||||
+------------[ cut here ]------------
|
|
||||||
+WARNING: CPU: 0 PID: 16684 at arch/x86/mm/ioremap.c:197 __ioremap_caller+0x2aa/0x3a0()
|
|
||||||
+Info: mapping multiple BARs. Your kernel is fine.
|
|
||||||
+Modules linked in:
|
|
||||||
+ bnep bluetooth rfkill xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack bridge stp llc snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec fuse snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer edac_core usblp kvm_amd snd serio_raw kvm k10temp edac_mce_amd sp5100_tco i2c_piix4 shpchp soundcore acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ata_generic pata_acpi nouveau video mxm_wmi wmi i2c_algo_bit drm_kms_helper ttm drm pata_atiixp r8169 mii
|
|
||||||
+CPU: 0 PID: 16684 Comm: firefox Not tainted 3.19.5-200.fc21.x86_64 #1
|
|
||||||
+Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./970A-DS3P, BIOS F1 04/08/2013
|
|
||||||
+ 0000000000000000 0000000087b0a5f7 ffff8802e1b9b768 ffffffff8176ead5
|
|
||||||
+ 0000000000000000 ffff8802e1b9b7c0 ffff8802e1b9b7a8 ffffffff8109bc1a
|
|
||||||
+ ffff8802e1b9b7d8 ffffc9001c180000 00000000d206d000 0000000000100000
|
|
||||||
+Call Trace:
|
|
||||||
+ [<ffffffff8176ead5>] dump_stack+0x45/0x57
|
|
||||||
+ [<ffffffff8109bc1a>] warn_slowpath_common+0x8a/0xc0
|
|
||||||
+ [<ffffffff8109bca5>] warn_slowpath_fmt+0x55/0x70
|
|
||||||
+ [<ffffffff810643aa>] __ioremap_caller+0x2aa/0x3a0
|
|
||||||
+ [<ffffffff810644b7>] ioremap_nocache+0x17/0x20
|
|
||||||
+ [<ffffffffa00e8036>] nouveau_barobj_ctor+0xd6/0x110 [nouveau]
|
|
||||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
|
||||||
+ [<ffffffffa00e80af>] nouveau_bar_alloc+0x3f/0x70 [nouveau]
|
|
||||||
+ [<ffffffffa00e3795>] nouveau_gpuobj_create_+0x2a5/0x2f0 [nouveau]
|
|
||||||
+ [<ffffffffa00e382c>] _nouveau_gpuobj_ctor+0x4c/0x70 [nouveau]
|
|
||||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
|
||||||
+ [<ffffffffa00e38ab>] nouveau_gpuobj_new+0x5b/0x80 [nouveau]
|
|
||||||
+ [<ffffffffa0132173>] nouveau_vm_get+0x183/0x2f0 [nouveau]
|
|
||||||
+ [<ffffffff811dd04a>] ? map_vm_area+0x2a/0x40
|
|
||||||
+ [<ffffffffa0182744>] nouveau_bo_vma_add+0x34/0x90 [nouveau]
|
|
||||||
+ [<ffffffffa017aee9>] nouveau_channel_prep+0x269/0x3b0 [nouveau]
|
|
||||||
+ [<ffffffffa017b0b3>] nouveau_channel_new+0x83/0x800 [nouveau]
|
|
||||||
+ [<ffffffffa01782fa>] ? nvif_device_init+0x3a/0x50 [nouveau]
|
|
||||||
+ [<ffffffff811fbba6>] ? kmem_cache_alloc_trace+0x1f6/0x230
|
|
||||||
+ [<ffffffffa0185770>] nouveau_abi16_ioctl_channel_alloc+0x120/0x3a0 [nouveau]
|
|
||||||
+ [<ffffffffa0031a9f>] drm_ioctl+0x1df/0x680 [drm]
|
|
||||||
+ [<ffffffff811cf196>] ? handle_mm_fault+0x8a6/0xff0
|
|
||||||
+ [<ffffffffa0179222>] nouveau_drm_ioctl+0x72/0xd0 [nouveau]
|
|
||||||
+ [<ffffffff8122e318>] do_vfs_ioctl+0x2f8/0x500
|
|
||||||
+ [<ffffffff8122e5a1>] SyS_ioctl+0x81/0xa0
|
|
||||||
+ [<ffffffff817752c9>] system_call_fastpath+0x12/0x17
|
|
||||||
+---[ end trace d72a6ef9c44bed66 ]---
|
|
||||||
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
|
||||||
index d90bb76..aa426ff 100644
|
|
||||||
--- a/src/plugins/Makefile.am
|
|
||||||
+++ b/src/plugins/Makefile.am
|
|
||||||
@@ -74,6 +74,7 @@ PYTHON_FILES = \
|
|
||||||
abrt-action-list-dsos \
|
|
||||||
abrt-action-analyze-core \
|
|
||||||
abrt-action-analyze-vulnerability \
|
|
||||||
+ abrt-action-check-oops-for-alt-component.in \
|
|
||||||
abrt-action-check-oops-for-hw-error.in \
|
|
||||||
abrt-action-perform-ccpp-analysis.in \
|
|
||||||
abrt-action-notify
|
|
||||||
@@ -101,6 +102,7 @@ EXTRA_DIST = \
|
|
||||||
if BUILD_ADDON_VMCORE
|
|
||||||
bin_SCRIPTS += \
|
|
||||||
abrt-action-analyze-vmcore \
|
|
||||||
+ abrt-action-check-oops-for-alt-component \
|
|
||||||
abrt-action-check-oops-for-hw-error
|
|
||||||
|
|
||||||
dist_events_DATA += \
|
|
||||||
@@ -115,6 +117,7 @@ PYTHON_FILES += \
|
|
||||||
EXTRA_DIST += \
|
|
||||||
analyze_VMcore.xml.in \
|
|
||||||
abrt-action-analyze-vmcore \
|
|
||||||
+ abrt-action-check-oops-for-alt-component \
|
|
||||||
abrt-action-check-oops-for-hw-error
|
|
||||||
endif
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-action-check-oops-for-alt-component.in b/src/plugins/abrt-action-check-oops-for-alt-component.in
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..3dce42e
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/plugins/abrt-action-check-oops-for-alt-component.in
|
|
||||||
@@ -0,0 +1,93 @@
|
|
||||||
+#!/usr/bin/python3 -u
|
|
||||||
+
|
|
||||||
+import sys
|
|
||||||
+import os
|
|
||||||
+import locale
|
|
||||||
+import gettext
|
|
||||||
+import hashlib
|
|
||||||
+import re
|
|
||||||
+
|
|
||||||
+GETTEXT_PROGNAME = "abrt"
|
|
||||||
+
|
|
||||||
+_ = gettext.lgettext
|
|
||||||
+
|
|
||||||
+tags = [
|
|
||||||
+"WARNING:",
|
|
||||||
+"[ER]IP[^:]",
|
|
||||||
+" \[<[a-f0-9]{8,16}>\]"
|
|
||||||
+]
|
|
||||||
+
|
|
||||||
+checks = [
|
|
||||||
+ ("i915", "xorg-x11-drv-intel"),
|
|
||||||
+ ("nouveau", "xorg-x11-drv-nouveau"),
|
|
||||||
+ ("radeon", "xorg-x11-drv-ati"),
|
|
||||||
+ ("qxl", "xorg-x11-drv-qxl"),
|
|
||||||
+]
|
|
||||||
+
|
|
||||||
+def check_tag(line):
|
|
||||||
+ for tag in tags:
|
|
||||||
+ if re.match(tag, line) is not None:
|
|
||||||
+ for (mod, component) in checks:
|
|
||||||
+ if re.search(mod, line) is not None:
|
|
||||||
+ return component
|
|
||||||
+ return None
|
|
||||||
+
|
|
||||||
+def get_new_component(filename):
|
|
||||||
+ try:
|
|
||||||
+ f = open(filename, "r")
|
|
||||||
+ except IOError as e:
|
|
||||||
+ return None
|
|
||||||
+ for line in f:
|
|
||||||
+ c = check_tag(line)
|
|
||||||
+ if c is not None:
|
|
||||||
+ f.close()
|
|
||||||
+ return c
|
|
||||||
+ f.close()
|
|
||||||
+ return None
|
|
||||||
+
|
|
||||||
+def open_or_die(filename, mode):
|
|
||||||
+ try:
|
|
||||||
+ f = open(filename, mode)
|
|
||||||
+ except IOError as e:
|
|
||||||
+ sys.stderr.write(str(e) + "\n")
|
|
||||||
+ sys.exit(1)
|
|
||||||
+ return f
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+if __name__ == "__main__":
|
|
||||||
+ try:
|
|
||||||
+ locale.setlocale(locale.LC_ALL, "")
|
|
||||||
+ except locale.Error:
|
|
||||||
+ os.environ['LC_ALL'] = 'C'
|
|
||||||
+ locale.setlocale(locale.LC_ALL, "")
|
|
||||||
+
|
|
||||||
+ # Defeat "AttributeError: 'module' object has no attribute 'nl_langinfo'"
|
|
||||||
+ try:
|
|
||||||
+ gettext.bind_textdomain_codeset(GETTEXT_PROGNAME,
|
|
||||||
+ locale.nl_langinfo(locale.CODESET))
|
|
||||||
+ except AttributeError:
|
|
||||||
+ pass
|
|
||||||
+
|
|
||||||
+ gettext.bindtextdomain(GETTEXT_PROGNAME, '/usr/share/locale')
|
|
||||||
+ gettext.textdomain(GETTEXT_PROGNAME)
|
|
||||||
+
|
|
||||||
+ #
|
|
||||||
+ # Certain drivers are in the kernel but need to be tracked separtely
|
|
||||||
+ # in other components. This fixes those components.
|
|
||||||
+ #
|
|
||||||
+
|
|
||||||
+ new_component = get_new_component("backtrace")
|
|
||||||
+ if new_component is None:
|
|
||||||
+ sys.exit(0)
|
|
||||||
+
|
|
||||||
+ print("Oops looks like a problem in kernel module, new component {0}"
|
|
||||||
+ .format(new_component))
|
|
||||||
+
|
|
||||||
+ f = open_or_die("component", "w")
|
|
||||||
+ f.write(new_component)
|
|
||||||
+ f.close()
|
|
||||||
+
|
|
||||||
+ # keep kernel maint in the loop even if the component gets changed
|
|
||||||
+ f = open_or_die("extra-cc", "w")
|
|
||||||
+ f.write("kernel-maint@redhat.com")
|
|
||||||
+ f.close()
|
|
||||||
diff --git a/src/plugins/koops_event.conf b/src/plugins/koops_event.conf
|
|
||||||
index a811077..2379d7d 100644
|
|
||||||
--- a/src/plugins/koops_event.conf
|
|
||||||
+++ b/src/plugins/koops_event.conf
|
|
||||||
@@ -8,6 +8,9 @@ EVENT=post-create type=Kerneloops
|
|
||||||
abrt-action-check-oops-for-hw-error
|
|
||||||
fi
|
|
||||||
{
|
|
||||||
+ abrt-action-check-oops-for-alt-component || true
|
|
||||||
+ } &&
|
|
||||||
+ {
|
|
||||||
# run abrt-action-analyze-oops only if check-hw-error didn't create the
|
|
||||||
# required files
|
|
||||||
if test ! -f uuid -a ! -f duphash; then
|
|
||||||
diff --git a/src/plugins/vmcore_event.conf b/src/plugins/vmcore_event.conf
|
|
||||||
index 43fa7f0..6870332 100644
|
|
||||||
--- a/src/plugins/vmcore_event.conf
|
|
||||||
+++ b/src/plugins/vmcore_event.conf
|
|
||||||
@@ -29,6 +29,7 @@ EVENT=post-create type=vmcore
|
|
||||||
# Do not fail the event (->do not delete problem dir)
|
|
||||||
# if check-oops-for-hw-error exits nonzero:
|
|
||||||
{ abrt-action-check-oops-for-hw-error || true; }
|
|
||||||
+ { abrt-action-check-oops-for-alt-component || true; }
|
|
||||||
|
|
||||||
# analyze
|
|
||||||
EVENT=analyze_VMcore type=vmcore
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
From 96c50b9c18aabf675e23f6df3ec584610ae5019a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Fri, 17 Jul 2015 10:25:50 +0200
|
|
||||||
Subject: [PATCH] ccpp: do not crash if generate_core_backtrace fails
|
|
||||||
|
|
||||||
Add a missing return statement in the error code execution path.
|
|
||||||
|
|
||||||
Related: rhbz#1243791
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/hooks/abrt-hook-ccpp.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
index 8ccef06..809b45e 100644
|
|
||||||
--- a/src/hooks/abrt-hook-ccpp.c
|
|
||||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
@@ -426,6 +426,7 @@ static void create_core_backtrace(pid_t tid, const char *executable, int signal_
|
|
||||||
{
|
|
||||||
log("Failed to create core_backtrace: %s", error_message);
|
|
||||||
free(error_message);
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd_save_text(dd, FILENAME_CORE_BACKTRACE, core_bt);
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
From cdc5824e4488d419616cdfaa87ac5f6cf2a4dfea Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Fri, 17 Jul 2015 10:42:01 +0200
|
|
||||||
Subject: [PATCH] applet: do not crash if the new problem has no command_line
|
|
||||||
|
|
||||||
Related: rhbz#1243791
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/applet/applet.c | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/applet/applet.c b/src/applet/applet.c
|
|
||||||
index 296e1b4..5bdedc1 100644
|
|
||||||
--- a/src/applet/applet.c
|
|
||||||
+++ b/src/applet/applet.c
|
|
||||||
@@ -661,7 +661,11 @@ static void notify_problem_list(GList *problems)
|
|
||||||
app = problem_create_app_from_env (problem_info_get_env(pi), problem_info_get_pid(pi));
|
|
||||||
|
|
||||||
if (!app)
|
|
||||||
- app = problem_create_app_from_cmdline (problem_info_get_command_line(pi));
|
|
||||||
+ {
|
|
||||||
+ const char *const cmd_line = problem_info_get_command_line(pi);
|
|
||||||
+ if (cmd_line != NULL)
|
|
||||||
+ app = problem_create_app_from_cmdline(cmd_line);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* For each problem we'll need to know:
|
|
||||||
* - Whether or not the crash happened in an “app”
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
From 5349718f775c39124e789457d2c012ac23c81619 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "knoha@redhat.com" <knoha@redhat.com>
|
|
||||||
Date: Fri, 24 Jul 2015 07:56:02 +0200
|
|
||||||
Subject: [PATCH] abrt-merge-pstoreoops: merge files in descending order
|
|
||||||
|
|
||||||
fs/pstore reads the data from kmsg_dump_get_buffer(), which starts at
|
|
||||||
the end of the kmsg buffer, in a while loop and increases Part no. in
|
|
||||||
each iteration.
|
|
||||||
|
|
||||||
Related: rhbz#1233662
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/hooks/abrt-merge-pstoreoops.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/hooks/abrt-merge-pstoreoops.c b/src/hooks/abrt-merge-pstoreoops.c
|
|
||||||
index 6fc3109..36f1e0b 100644
|
|
||||||
--- a/src/hooks/abrt-merge-pstoreoops.c
|
|
||||||
+++ b/src/hooks/abrt-merge-pstoreoops.c
|
|
||||||
@@ -64,9 +64,9 @@ int compare_oops_texts(const void *a, const void *b)
|
|
||||||
return -1;
|
|
||||||
if (aa->panic_no > bb->panic_no)
|
|
||||||
return 1;
|
|
||||||
- if (aa->part_no < bb->part_no)
|
|
||||||
+ if (aa->part_no > bb->part_no)
|
|
||||||
return -1;
|
|
||||||
- return (aa->part_no > bb->part_no);
|
|
||||||
+ return (aa->part_no < bb->part_no);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
From 03be49244ab5f4fdd7521254dd6afedbd277ceea Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Tue, 28 Jul 2015 13:17:25 +0200
|
|
||||||
Subject: [PATCH] abrt-auto-reporting: fix related to conditional compilation
|
|
||||||
|
|
||||||
We discovered that conditional compilation in abrt-auto-reporting does not
|
|
||||||
work. We forgot add -DAUTHENTICATED_AUTOREPORTING=1 flag if
|
|
||||||
AUTHENTICATED_AUTOREPORTING is enabled.
|
|
||||||
|
|
||||||
Related to rhbz#1191572
|
|
||||||
---
|
|
||||||
src/daemon/Makefile.am | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am
|
|
||||||
index a8f3fa2..563923a 100644
|
|
||||||
--- a/src/daemon/Makefile.am
|
|
||||||
+++ b/src/daemon/Makefile.am
|
|
||||||
@@ -122,6 +122,11 @@ abrt_auto_reporting_CPPFLAGS = \
|
|
||||||
-I$(srcdir)/../lib \
|
|
||||||
$(LIBREPORT_CFLAGS) \
|
|
||||||
-D_GNU_SOURCE
|
|
||||||
+
|
|
||||||
+if AUTHENTICATED_AUTOREPORTING
|
|
||||||
+abrt_auto_reporting_CPPFLAGS += -DAUTHENTICATED_AUTOREPORTING=1
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
abrt_auto_reporting_LDADD = \
|
|
||||||
../lib/libabrt.la \
|
|
||||||
$(LIBREPORT_LIBS)
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
From f1e5d631932a05e3147b6af73ce1230150f9f979 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Tue, 28 Jul 2015 16:20:47 +0200
|
|
||||||
Subject: [PATCH] doc: fix related to conditional compilation of man page
|
|
||||||
|
|
||||||
abrt-auto-reporting.txt is a copy of either
|
|
||||||
abrt-auto-reporting-authenticated.txt or
|
|
||||||
abrt-auto-reporting-unauthenticated.txt. abrt-auto-reporting.txt file always
|
|
||||||
exists because MAN1_TXT variable contains it and is distributed (the file is listed
|
|
||||||
in the EXTRA_DIST variable). It would be difficult to ensure
|
|
||||||
to have abrt-auto-reporting.txt in the MAN1_TXT and exclude it
|
|
||||||
from the EXTRA_DIST. So enforce copy, to get the right version of man page, seems
|
|
||||||
like the easiest way.
|
|
||||||
|
|
||||||
Related to rhbz#1191572
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
doc/Makefile.am | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
|
||||||
index f39c3bf..fdd08cf 100644
|
|
||||||
--- a/doc/Makefile.am
|
|
||||||
+++ b/doc/Makefile.am
|
|
||||||
@@ -82,6 +82,15 @@ MAN_SOURCE =
|
|
||||||
MAN_SOURCE += abrt-auto-reporting-authenticated.txt
|
|
||||||
MAN_SOURCE += abrt-auto-reporting-unauthenticated.txt
|
|
||||||
|
|
||||||
+# abrt-auto-reporting.txt is a copy of either
|
|
||||||
+# abrt-auto-reporting-authenticated.txt or
|
|
||||||
+# abrt-auto-reporting-unauthenticated.txt. abrt-auto-reporting.txt file always
|
|
||||||
+# exists because MAN1_TXT variable contains it and is distributed (the file is listed
|
|
||||||
+# in the EXTRA_DIST variable). It would be difficult to ensure
|
|
||||||
+# to have abrt-auto-reporting.txt in the MAN1_TXT and exclude it
|
|
||||||
+# from the EXTRA_DIST. So enforce copy, to get the right version of man page, seems
|
|
||||||
+# like the easiest way.
|
|
||||||
+.PHONY: abrt-auto-reporting.txt
|
|
||||||
if AUTHENTICATED_AUTOREPORTING
|
|
||||||
abrt-auto-reporting.txt: abrt-auto-reporting-authenticated.txt
|
|
||||||
else
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
From 0c3a29b70992627481af789dab50247728bcedf1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Tue, 11 Aug 2015 09:54:55 +0200
|
|
||||||
Subject: [PATCH] dbus-api: unify reporting of errors
|
|
||||||
|
|
||||||
User ERR_PTR for failures in all functions because some of the functions
|
|
||||||
use NULL as a valid response (NULL is an empty GList).
|
|
||||||
|
|
||||||
Related: rhbz#1224984
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/include/libabrt.h | 16 +++++++++-------
|
|
||||||
src/lib/problem_api_dbus.c | 2 +-
|
|
||||||
2 files changed, 10 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
|
|
||||||
index 4e73a0d..da565f9 100644
|
|
||||||
--- a/src/include/libabrt.h
|
|
||||||
+++ b/src/include/libabrt.h
|
|
||||||
@@ -163,7 +163,7 @@ void koops_print_suspicious_strings_filtered(const regex_t **filterout);
|
|
||||||
|
|
||||||
Requires authorization
|
|
||||||
|
|
||||||
- @return 0 if successfull non-zeru on failure
|
|
||||||
+ @return 0 if successful; non-zero on failure
|
|
||||||
*/
|
|
||||||
int chown_dir_over_dbus(const char *problem_dir_path);
|
|
||||||
|
|
||||||
@@ -181,7 +181,7 @@ int test_exist_over_dbus(const char *problem_id, const char *element_name);
|
|
||||||
|
|
||||||
Might require authorization
|
|
||||||
|
|
||||||
- @return Positive number if such the proble is complete, 0 if doesn't and negative number if an error occurs.
|
|
||||||
+ @return Positive number if the problem is complete, 0 if doesn't and negative number if an error occurs.
|
|
||||||
*/
|
|
||||||
int dbus_problem_is_complete(const char *problem_id);
|
|
||||||
|
|
||||||
@@ -198,7 +198,8 @@ char *load_text_over_dbus(const char *problem_id, const char *element_name);
|
|
||||||
@brief Delets multiple problems specified by their id (as returned from problem_data_save)
|
|
||||||
|
|
||||||
@param problem_dir_paths List of problem ids
|
|
||||||
- @return 0 if operation was successfull, non-zero on failure
|
|
||||||
+
|
|
||||||
+ @return 0 if operation was successful, non-zero on failure
|
|
||||||
*/
|
|
||||||
|
|
||||||
int delete_problem_dirs_over_dbus(const GList *problem_dir_paths);
|
|
||||||
@@ -206,21 +207,21 @@ int delete_problem_dirs_over_dbus(const GList *problem_dir_paths);
|
|
||||||
/**
|
|
||||||
@brief Fetches given problem elements for specified problem id
|
|
||||||
|
|
||||||
- @return on failures returns non zero value and emits error message
|
|
||||||
+ @return returns non-zero value on failures and prints error message
|
|
||||||
*/
|
|
||||||
int fill_problem_data_over_dbus(const char *problem_dir_path, const char **elements, problem_data_t *problem_data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
@brief Fetches problem information for specified problem id
|
|
||||||
|
|
||||||
- @return problem_data_t or NULL on failure
|
|
||||||
+ @return a valid pointer to problem_data_t or ERR_PTR on failure
|
|
||||||
*/
|
|
||||||
problem_data_t *get_problem_data_dbus(const char *problem_dir_path);
|
|
||||||
|
|
||||||
/**
|
|
||||||
@brief Fetches full problem data for specified problem id
|
|
||||||
|
|
||||||
- @return problem_data_t or ERR_PTR on failure
|
|
||||||
+ @return a valid pointer to problem_data_t or ERR_PTR on failure
|
|
||||||
*/
|
|
||||||
problem_data_t *get_full_problem_data_over_dbus(const char *problem_dir_path);
|
|
||||||
|
|
||||||
@@ -228,7 +229,8 @@ problem_data_t *get_full_problem_data_over_dbus(const char *problem_dir_path);
|
|
||||||
@brief Fetches all problems from problem database
|
|
||||||
|
|
||||||
@param authorize If set to true will try to fetch even problems owned by other users (will require root authorization over policy kit)
|
|
||||||
- @return List of problem ids or NULL on failure
|
|
||||||
+
|
|
||||||
+ @return List of problem ids or ERR_PTR on failure (NULL is an empty list)
|
|
||||||
*/
|
|
||||||
GList *get_problems_over_dbus(bool authorize);
|
|
||||||
|
|
||||||
diff --git a/src/lib/problem_api_dbus.c b/src/lib/problem_api_dbus.c
|
|
||||||
index ce5c47b..0bf86e2 100644
|
|
||||||
--- a/src/lib/problem_api_dbus.c
|
|
||||||
+++ b/src/lib/problem_api_dbus.c
|
|
||||||
@@ -165,7 +165,7 @@ problem_data_t *get_problem_data_dbus(const char *problem_dir_path)
|
|
||||||
{
|
|
||||||
error_msg(_("Can't get problem data from abrt-dbus"));
|
|
||||||
problem_data_free(pd);
|
|
||||||
- return NULL;
|
|
||||||
+ return ERR_PTR;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pd;
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
From a4412db28021552e1399695b3f5435ccbb03bf08 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Tue, 11 Aug 2015 10:01:53 +0200
|
|
||||||
Subject: [PATCH] cli: fix testing of DBus API return codes
|
|
||||||
|
|
||||||
The DBus wrapper functions uses ERR_PTR to report an error, so the
|
|
||||||
callers has to test the returned pointers for NULL and for ERR_PTR.
|
|
||||||
|
|
||||||
Related: rhbz#1224984
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/cli/list.c | 3 +++
|
|
||||||
src/cli/status.c | 5 ++++-
|
|
||||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
|
||||||
index 68dda47..d069695 100644
|
|
||||||
--- a/src/cli/list.c
|
|
||||||
+++ b/src/cli/list.c
|
|
||||||
@@ -36,6 +36,9 @@ static problem_data_t *load_problem_data(const char *problem_id)
|
|
||||||
|
|
||||||
/* First, check if there is a problem with the passed id */
|
|
||||||
GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
|
||||||
+ if (problems == ERR_PTR)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
GList *item = g_list_find_custom(problems, problem_id, (GCompareFunc)strcmp);
|
|
||||||
|
|
||||||
/* (git requires at least 5 char hash prefix, we do the same) */
|
|
||||||
diff --git a/src/cli/status.c b/src/cli/status.c
|
|
||||||
index 0635289..3620cea 100644
|
|
||||||
--- a/src/cli/status.c
|
|
||||||
+++ b/src/cli/status.c
|
|
||||||
@@ -27,6 +27,9 @@ static unsigned int count_problem_dirs(unsigned long since)
|
|
||||||
unsigned count = 0;
|
|
||||||
|
|
||||||
GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
|
||||||
+ if (problems == ERR_PTR)
|
|
||||||
+ return count;
|
|
||||||
+
|
|
||||||
for (GList *iter = problems; iter != NULL; iter = g_list_next(iter))
|
|
||||||
{
|
|
||||||
const char *problem_id = (const char *)iter->data;
|
|
||||||
@@ -37,7 +40,7 @@ static unsigned int count_problem_dirs(unsigned long since)
|
|
||||||
}
|
|
||||||
|
|
||||||
char *time_str = load_text_over_dbus(problem_id, FILENAME_LAST_OCCURRENCE);
|
|
||||||
- if (time_str == NULL)
|
|
||||||
+ if (time_str == ERR_PTR || time_str == NULL)
|
|
||||||
{
|
|
||||||
log_debug("Not counting problem %s: failed to get time element", problem_id);
|
|
||||||
continue;
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
From affc4b3e644931820180aec57e128106e44b626c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Tue, 11 Aug 2015 16:17:40 +0200
|
|
||||||
Subject: [PATCH] ccpp: fix comment related to 'MakeCompatCore' option in
|
|
||||||
CCpp.conf
|
|
||||||
|
|
||||||
The comment fits only on the default core_pattern template.
|
|
||||||
If the core_pattern is not default, the comment does not fit.
|
|
||||||
|
|
||||||
Related to rhbz#1252384
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
doc/abrt-CCpp.conf.txt | 9 +++++++--
|
|
||||||
src/hooks/CCpp.conf | 9 +++++++--
|
|
||||||
2 files changed, 14 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/abrt-CCpp.conf.txt b/doc/abrt-CCpp.conf.txt
|
|
||||||
index 498d53d..cf9b213 100644
|
|
||||||
--- a/doc/abrt-CCpp.conf.txt
|
|
||||||
+++ b/doc/abrt-CCpp.conf.txt
|
|
||||||
@@ -11,8 +11,13 @@ The configuration file consists of items in the format "Option = Value".
|
|
||||||
Ithe following items are recognized:
|
|
||||||
|
|
||||||
MakeCompatCore = 'yes' / 'no' ...::
|
|
||||||
- If you also want to dump file named "core"
|
|
||||||
- in crashed process' current dir, set to "yes".
|
|
||||||
+ CCpp hook writes its template to the "/proc/sys/kernel/core_pattern" file
|
|
||||||
+ and stores the original template in the "/var/run/abrt/saved_core_pattern"
|
|
||||||
+ file. If you want CCpp hook to create a core dump file named according to
|
|
||||||
+ the original template as well, set 'MakeCompatCore' to 'yes'.
|
|
||||||
+ If the original template string starts with "|", the string "core" is used
|
|
||||||
+ instead of the template.
|
|
||||||
+ For more information about naming core dump files see 'man 5 core'.
|
|
||||||
|
|
||||||
SaveBinaryImage = 'yes' / 'no' ...::
|
|
||||||
Do you want a copy of crashed binary be saved?
|
|
||||||
diff --git a/src/hooks/CCpp.conf b/src/hooks/CCpp.conf
|
|
||||||
index 92d7438..03b9b03 100644
|
|
||||||
--- a/src/hooks/CCpp.conf
|
|
||||||
+++ b/src/hooks/CCpp.conf
|
|
||||||
@@ -1,7 +1,12 @@
|
|
||||||
# Configuration file for CCpp hook
|
|
||||||
|
|
||||||
-# If you also want to dump file named "core"
|
|
||||||
-# in crashed process' current dir, set to "yes"
|
|
||||||
+# CCpp hook writes its template to the "/proc/sys/kernel/core_pattern" file
|
|
||||||
+# and stores the original template in the "/var/run/abrt/saved_core_pattern"
|
|
||||||
+# file. If you want CCpp hook to create a core dump file named according to
|
|
||||||
+# the original template as well, set 'MakeCompatCore' to 'yes'.
|
|
||||||
+# If the original template string starts with "|", the string "core" is used
|
|
||||||
+# instead of the template.
|
|
||||||
+# For more information about naming core dump files see 'man 5 core'.
|
|
||||||
MakeCompatCore = yes
|
|
||||||
|
|
||||||
# Do you want a copy of crashed binary be saved?
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
From fbb66dec11a7e8503b0cfb9b2c85e94f6b00f4a3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 12 Aug 2015 17:40:12 +0200
|
|
||||||
Subject: [PATCH] ccpp: use global TID
|
|
||||||
|
|
||||||
'%i' is TID of the thread from the crashed process's PID namespace but
|
|
||||||
abrt-hook-ccpp is run by kernel in the init PID namespace, so '%i'
|
|
||||||
is TID of a completely unrelated process.
|
|
||||||
|
|
||||||
For mode details see 'man 5 core'.
|
|
||||||
|
|
||||||
Related: rhbz#1252590
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/hooks/abrt-install-ccpp-hook.in | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/hooks/abrt-install-ccpp-hook.in b/src/hooks/abrt-install-ccpp-hook.in
|
|
||||||
index 13832ab..707c57d 100755
|
|
||||||
--- a/src/hooks/abrt-install-ccpp-hook.in
|
|
||||||
+++ b/src/hooks/abrt-install-ccpp-hook.in
|
|
||||||
@@ -11,9 +11,9 @@ SAVED_PATTERN_DIR="@VAR_RUN@/abrt"
|
|
||||||
SAVED_PATTERN_FILE="@VAR_RUN@/abrt/saved_core_pattern"
|
|
||||||
HOOK_BIN="@libexecdir@/abrt-hook-ccpp"
|
|
||||||
# Must match percent_specifiers[] order in abrt-hook-ccpp.c:
|
|
||||||
-PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e %P %i"
|
|
||||||
+PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e %P %I"
|
|
||||||
# Same, but with bogus "executable name" parameter
|
|
||||||
-PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e %P %i"
|
|
||||||
+PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e %P %I"
|
|
||||||
|
|
||||||
# core_pipe_limit specifies how many dump_helpers can run at the same time
|
|
||||||
# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
From fba54d523b5047cef9f14cdc174fa914f0731c2b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Thu, 20 Aug 2015 09:40:59 +0200
|
|
||||||
Subject: [PATCH] a-a-s-p-d: add bash on the package blacklist
|
|
||||||
|
|
||||||
In case of this package, the reported data doesn't yield sufficient information
|
|
||||||
to solve a bug.
|
|
||||||
|
|
||||||
Related to rhbz#1250379
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/daemon/abrt-action-save-package-data.conf | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
index 27b9607..0129399 100644
|
|
||||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
@@ -7,7 +7,7 @@ OpenGPGCheck = yes
|
|
||||||
|
|
||||||
# Blacklisted packages
|
|
||||||
#
|
|
||||||
-BlackList = nspluginwrapper, valgrind, strace, mono-core, firefox
|
|
||||||
+BlackList = nspluginwrapper, valgrind, strace, mono-core, firefox, bash
|
|
||||||
|
|
||||||
# Process crashes in executables which do not belong to any package?
|
|
||||||
#
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
From c0440e41e6739f26df540aed167dc00c59eebeb0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Thu, 20 Aug 2015 11:15:59 +0200
|
|
||||||
Subject: [PATCH] cli: don't start reporting of not-reportable problems
|
|
||||||
|
|
||||||
If the reported problem data contains 'not-reportable' element, the
|
|
||||||
reporting process fails unexpectedly and after the reporter already spent some
|
|
||||||
time on it.
|
|
||||||
|
|
||||||
This commit ensures that the reporting process won't start, so
|
|
||||||
abrt-cli's behaviour will be consistent with ABRT GUI.
|
|
||||||
|
|
||||||
However, this is not an ideal solution because we might want to allow
|
|
||||||
the reporter to report the problem directly to developers via e-mail.
|
|
||||||
|
|
||||||
Closes #986
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/cli/report.c | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/cli/report.c b/src/cli/report.c
|
|
||||||
index 19b4c51..cc4035e 100644
|
|
||||||
--- a/src/cli/report.c
|
|
||||||
+++ b/src/cli/report.c
|
|
||||||
@@ -36,6 +36,15 @@ int _cmd_report(const char **dirs_strv, int remove)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ const int not_reportable = test_exist_over_dbus(real_problem_id, FILENAME_NOT_REPORTABLE);
|
|
||||||
+ if (not_reportable != 0)
|
|
||||||
+ {
|
|
||||||
+ error_msg(_("Problem '%s' cannot be reported"), real_problem_id);
|
|
||||||
+ free(real_problem_id);
|
|
||||||
+ ++ret;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
const int res = chown_dir_over_dbus(real_problem_id);
|
|
||||||
if (res != 0)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,317 +0,0 @@
|
||||||
From fe2db75f3c7fc37e4754241258e2c14c8d7d2826 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Tue, 25 Aug 2015 16:03:51 +0200
|
|
||||||
Subject: [PATCH] introduce bodhi2 to abrt-bodhi
|
|
||||||
|
|
||||||
Resolves: rhbz#1256493
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
configure.ac | 1 +
|
|
||||||
src/plugins/Makefile.am | 2 +
|
|
||||||
src/plugins/bodhi.c | 197 +++++++++++++++++++++++++++---------------------
|
|
||||||
3 files changed, 114 insertions(+), 86 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index b372e12..1013e3b 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -376,6 +376,7 @@ PKG_CHECK_MODULES([JSON_C], [json], [
|
|
||||||
if test -z "$NO_BODHI"
|
|
||||||
then
|
|
||||||
PKG_CHECK_MODULES([LIBREPORT_WEB], [libreport-web])
|
|
||||||
+PKG_CHECK_MODULES([HAWKEY], [hawkey])
|
|
||||||
AM_CONDITIONAL(BUILD_BODHI, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(BUILD_BODHI, false)
|
|
||||||
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
|
||||||
index aa426ff..1c1ff8a 100644
|
|
||||||
--- a/src/plugins/Makefile.am
|
|
||||||
+++ b/src/plugins/Makefile.am
|
|
||||||
@@ -366,10 +366,12 @@ abrt_bodhi_SOURCES = \
|
|
||||||
$(LIBREPORT_WEB_CFLAGS) \
|
|
||||||
$(JSON_C_CFLAGS) \
|
|
||||||
$(RPM_CFLAGS) \
|
|
||||||
+ $(HAWKEY_CFLAGS) \
|
|
||||||
-D_GNU_SOURCE
|
|
||||||
abrt_bodhi_LDADD = \
|
|
||||||
$(JSON_C_LIBS) \
|
|
||||||
$(RPM_LIBS) \
|
|
||||||
+ $(HAWKEY_LIBS) \
|
|
||||||
$(LIBREPORT_LIBS) \
|
|
||||||
$(LIBREPORT_WEB_LIBS)
|
|
||||||
endif
|
|
||||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
|
||||||
index fcdbd83..831f5ff 100644
|
|
||||||
--- a/src/plugins/bodhi.c
|
|
||||||
+++ b/src/plugins/bodhi.c
|
|
||||||
@@ -22,6 +22,7 @@
|
|
||||||
#include <rpm/rpmcli.h>
|
|
||||||
#include <rpm/rpmdb.h>
|
|
||||||
#include <rpm/rpmpgp.h>
|
|
||||||
+#include <hawkey/util.h>
|
|
||||||
|
|
||||||
#include <libreport/internal_libreport.h>
|
|
||||||
#include <libreport/libreport_curl.h>
|
|
||||||
@@ -32,85 +33,103 @@
|
|
||||||
/* bodhi returns json structure
|
|
||||||
|
|
||||||
{
|
|
||||||
- "num_items":2,
|
|
||||||
- "title":"2 updats found",
|
|
||||||
- "tg_flash":null,
|
|
||||||
- "updates":[
|
|
||||||
- {
|
|
||||||
- "status":"stable",
|
|
||||||
- "close_bugs":true,
|
|
||||||
- "request":null,
|
|
||||||
- "date_submitted":"2011-03-18 17:25:14",
|
|
||||||
- "unstable_karma":-3,
|
|
||||||
- "submitter":"twaugh",
|
|
||||||
- "critpath":false,
|
|
||||||
- "approved":null,
|
|
||||||
- "stable_karma":2,
|
|
||||||
- "date_pushed":"2011-03-19 05:34:27",
|
|
||||||
- "builds":[
|
|
||||||
- {
|
|
||||||
- "nvr":"system-config-printer-1.3.2-1.fc15",
|
|
||||||
- "package":{
|
|
||||||
- "suggest_reboot":false,
|
|
||||||
- "committers":[
|
|
||||||
- "twaugh",
|
|
||||||
- "jpopelka"
|
|
||||||
- ],
|
|
||||||
- "name":"system-config-printer"
|
|
||||||
- }
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- ....
|
|
||||||
- }
|
|
||||||
- ],
|
|
||||||
- "title":"system-config-printer-1.3.2-1.fc15",
|
|
||||||
- "notes":"This update fixes several bugs and re-enables translations that were accidentally disabled.",
|
|
||||||
- "date_modified":null,
|
|
||||||
- "nagged":null,
|
|
||||||
- "bugs":[
|
|
||||||
- {
|
|
||||||
- "bz_id":685098,
|
|
||||||
- "security":false,
|
|
||||||
- "parent":false,
|
|
||||||
- "title":"[abrt] system-config-printer-1.3.1-1.fc15: authconn.py:197:_connect:RuntimeError: failed to connect to server"
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- ...
|
|
||||||
- }
|
|
||||||
- ],
|
|
||||||
- "comments":[
|
|
||||||
- {
|
|
||||||
- "group":null,
|
|
||||||
- "karma":0,
|
|
||||||
- "anonymous":false,
|
|
||||||
- "author":"bodhi",
|
|
||||||
- "timestamp":"2011-03-18 17:26:34",
|
|
||||||
- "text":"This update has been submitted for testing by twaugh. "
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- ...
|
|
||||||
- }
|
|
||||||
- ],
|
|
||||||
- "critpath_approved":false,
|
|
||||||
- "updateid":"FEDORA-2011-3596",
|
|
||||||
- "karma":0,
|
|
||||||
- "release":{
|
|
||||||
- "dist_tag":"dist-f15",
|
|
||||||
- "id_prefix":"FEDORA",
|
|
||||||
- "locked":false,
|
|
||||||
- "name":"F15",
|
|
||||||
- "long_name":"Fedora 15"
|
|
||||||
- },
|
|
||||||
- "type":"bugfix"
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- ...
|
|
||||||
- }
|
|
||||||
- ]
|
|
||||||
+ "rows_per_page": 20,
|
|
||||||
+ "total": 1,
|
|
||||||
+ "chrome": true,
|
|
||||||
+ "display_user": true,
|
|
||||||
+ "pages": 1,
|
|
||||||
+ "updates": [
|
|
||||||
+ {
|
|
||||||
+ "close_bugs": true,
|
|
||||||
+ "old_updateid": "FEDORA-2015-13720",
|
|
||||||
+ "pushed": true,
|
|
||||||
+ "require_testcases": false,
|
|
||||||
+ "critpath": false,
|
|
||||||
+ "date_approved": null,
|
|
||||||
+ "stable_karma": null,
|
|
||||||
+ "date_pushed": "2015-08-19 04:49:00",
|
|
||||||
+ "requirements": null,
|
|
||||||
+ "severity": "unspecified",
|
|
||||||
+ "title": "hwloc-1.11.0-3.fc22",
|
|
||||||
+ "suggest": "unspecified",
|
|
||||||
+ "require_bugs": false,
|
|
||||||
+ "comments": [
|
|
||||||
+ {
|
|
||||||
+ "bug_feedback": [],
|
|
||||||
+ "user_id": 91,
|
|
||||||
+ "text": "This update has been submitted for testing by jhladky. ",
|
|
||||||
+ "testcase_feedback": [],
|
|
||||||
+ "karma_critpath": 0,
|
|
||||||
+ "update": 21885,
|
|
||||||
+ "update_id": 21885,
|
|
||||||
+ "karma": 0,
|
|
||||||
+ "anonymous": false,
|
|
||||||
+ "timestamp": "2015-08-18 13:38:35",
|
|
||||||
+ "id": 166016,
|
|
||||||
+ "user": {"stacks": [],
|
|
||||||
+ "name": "bodhi",
|
|
||||||
+ "avatar": "https://apps.fedoraproject.org/img/icons/bodhi-24.png"}
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ ...
|
|
||||||
+ }
|
|
||||||
+ ],
|
|
||||||
+ "updateid": "FEDORA-2015-13720",
|
|
||||||
+ "cves": [],
|
|
||||||
+ "type": "bugfix",
|
|
||||||
+ "status": "testing",
|
|
||||||
+ "date_submitted": "2015-08-18 13:37:26",
|
|
||||||
+ "unstable_karma": null,
|
|
||||||
+ "submitter": "jhladky",
|
|
||||||
+ "user":
|
|
||||||
+ {
|
|
||||||
+ "stacks": [],
|
|
||||||
+ "buildroot_overrides": [],
|
|
||||||
+ "name": "jhladky",
|
|
||||||
+ "avatar": "https://seccdn.libravatar.org/avatar/b838b78fcf707a13cdaeb1c846d514e614d617cbf2c106718e71cb397607f59b?s=24&d=retro"
|
|
||||||
+ },
|
|
||||||
+ "locked": false,
|
|
||||||
+ "builds": [{"override": null,
|
|
||||||
+ "nvr": "hwloc-1.11.0-3.fc22"}],
|
|
||||||
+ "date_modified": null,
|
|
||||||
+ "test_cases": [],
|
|
||||||
+ "notes": "Fix for BZ1253977",
|
|
||||||
+ "request": null,
|
|
||||||
+ "bugs": [
|
|
||||||
+ {
|
|
||||||
+ "bug_id": 1253977,
|
|
||||||
+ "security": false,
|
|
||||||
+ "feedback": [],
|
|
||||||
+ "parent": false,
|
|
||||||
+ "title": "conflict between hwloc-libs-1.11.0-1.fc22.i686 and hwloc-libs-1.11.0-1.fc22.x86_64"
|
|
||||||
+ }
|
|
||||||
+ ],
|
|
||||||
+ "alias": "FEDORA-2015-13720",
|
|
||||||
+ "karma": 0,
|
|
||||||
+ "release":
|
|
||||||
+ {
|
|
||||||
+ "dist_tag": "f22",
|
|
||||||
+ "name": "F22",
|
|
||||||
+ "testing_tag": "f22-updates-testing",
|
|
||||||
+ "pending_stable_tag": "f22-updates-pending",
|
|
||||||
+ "long_name": "Fedora 22",
|
|
||||||
+ "state": "current",
|
|
||||||
+ "version": "22",
|
|
||||||
+ "override_tag": "f22-override",
|
|
||||||
+ "branch": "f22",
|
|
||||||
+ "id_prefix": "FEDORA",
|
|
||||||
+ "pending_testing_tag": "f22-updates-testing-pending",
|
|
||||||
+ "stable_tag": "f22-updates",
|
|
||||||
+ "candidate_tag": "f22-updates-candidate"
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ ],
|
|
||||||
+ "display_request": true,
|
|
||||||
+ "page": 1
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
-static const char *bodhi_url = "https://admin.fedoraproject.org/updates";
|
|
||||||
+static const char *bodhi_url = "https://bodhi.fedoraproject.org/updates";
|
|
||||||
|
|
||||||
struct bodhi {
|
|
||||||
char *nvr;
|
|
||||||
@@ -202,7 +221,7 @@ static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
|
||||||
{
|
|
||||||
|
|
||||||
int num_items = 0;
|
|
||||||
- bodhi_read_value(json, "num_items", &num_items, BODHI_READ_INT);
|
|
||||||
+ bodhi_read_value(json, "total", &num_items, BODHI_READ_INT);
|
|
||||||
if (num_items <= 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
@@ -241,13 +260,19 @@ static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
|
||||||
b = xzalloc(sizeof(struct bodhi));
|
|
||||||
|
|
||||||
char *name = NULL;
|
|
||||||
+ long ign_e;
|
|
||||||
+ char *ign_v, *ign_r, *ign_a;
|
|
||||||
+
|
|
||||||
json_object *build = json_object_array_get_idx(builds_item, k);
|
|
||||||
|
|
||||||
bodhi_read_value(build, "nvr", &b->nvr, BODHI_READ_STR);
|
|
||||||
|
|
||||||
- json_object *package = NULL;
|
|
||||||
- bodhi_read_value(build, "package", &package, BODHI_READ_JSON_OBJ);
|
|
||||||
- bodhi_read_value(package, "name", &name, BODHI_READ_STR);
|
|
||||||
+ if (hy_split_nevra(b->nvr, &name, &ign_e, &ign_v, &ign_r, &ign_a))
|
|
||||||
+ error_msg_and_die("hawkey failed to parse '%s'", b->nvr);
|
|
||||||
+
|
|
||||||
+ free(ign_v);
|
|
||||||
+ free(ign_r);
|
|
||||||
+ free(ign_a);
|
|
||||||
|
|
||||||
struct bodhi *bodhi_tbl_item = g_hash_table_lookup(bodhi_table, name);
|
|
||||||
if (bodhi_tbl_item && rpmvercmp(bodhi_tbl_item->nvr, b->nvr) > 0)
|
|
||||||
@@ -287,7 +312,7 @@ static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
|
||||||
|
|
||||||
static GHashTable *bodhi_query_list(const char *query, const char *release)
|
|
||||||
{
|
|
||||||
- char *bodhi_url_bugs = xasprintf("%s/list", bodhi_url);
|
|
||||||
+ char *bodhi_url_bugs = xasprintf("%s/?%s", bodhi_url, query);
|
|
||||||
|
|
||||||
post_state_t *post_state = new_post_state(POST_WANT_BODY
|
|
||||||
| POST_WANT_SSL_VERIFY
|
|
||||||
@@ -298,8 +323,8 @@ static GHashTable *bodhi_query_list(const char *query, const char *release)
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
- post_string(post_state, bodhi_url_bugs, "application/x-www-form-urlencoded",
|
|
||||||
- headers, query);
|
|
||||||
+ get(post_state, bodhi_url_bugs, "application/x-www-form-urlencoded",
|
|
||||||
+ headers);
|
|
||||||
|
|
||||||
if (post_state->http_resp_code != 200)
|
|
||||||
{
|
|
||||||
@@ -397,7 +422,7 @@ int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
if (release)
|
|
||||||
{
|
|
||||||
- query = strbuf_append_strf(query, "release=%s&", release);
|
|
||||||
+ query = strbuf_append_strf(query, "releases=%s&", release);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
@@ -414,7 +439,7 @@ int main(int argc, char **argv)
|
|
||||||
map_string_t *osinfo = new_map_string();
|
|
||||||
problem_data_get_osinfo(problem_data, osinfo);
|
|
||||||
parse_osinfo_for_rhts(osinfo, &product, &version);
|
|
||||||
- query = strbuf_append_strf(query, "release=f%s&", version);
|
|
||||||
+ query = strbuf_append_strf(query, "releases=f%s&", version);
|
|
||||||
free(product);
|
|
||||||
free(version);
|
|
||||||
free_map_string(osinfo);
|
|
||||||
@@ -424,7 +449,7 @@ int main(int argc, char **argv)
|
|
||||||
if (argv[optind])
|
|
||||||
{
|
|
||||||
char *escaped = g_uri_escape_string(argv[optind], NULL, 0);
|
|
||||||
- query = strbuf_append_strf(query, "package=%s&", escaped);
|
|
||||||
+ query = strbuf_append_strf(query, "packages=%s&", escaped);
|
|
||||||
free(escaped);
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
From 5bdcc2f09aa22180b4ce072f1ec1d65e86eafbab Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 26 Aug 2015 08:28:07 +0200
|
|
||||||
Subject: [PATCH] ccpp: do not break the reporting if a-bodhi fails
|
|
||||||
|
|
||||||
Related: rhbz#1256493
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/abrt-action-analyze-ccpp-local.in | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-action-analyze-ccpp-local.in b/src/plugins/abrt-action-analyze-ccpp-local.in
|
|
||||||
index de131c8..5a42a03 100644
|
|
||||||
--- a/src/plugins/abrt-action-analyze-ccpp-local.in
|
|
||||||
+++ b/src/plugins/abrt-action-analyze-ccpp-local.in
|
|
||||||
@@ -39,7 +39,7 @@ if [ $? = 0 ]; then
|
|
||||||
bug_id=$(reporter-bugzilla -h "`cat duphash`")
|
|
||||||
if $WITH_BODHI; then
|
|
||||||
if test -n "$bug_id"; then
|
|
||||||
- abrt-bodhi -r -b $bug_id
|
|
||||||
+ abrt-bodhi -r -b $bug_id || :
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
From 6171adb8111747550e5093cd673e2f254ec1b7c9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Wed, 26 Aug 2015 13:18:26 +0200
|
|
||||||
Subject: [PATCH] bodhi: add ignoring of Rawhide
|
|
||||||
|
|
||||||
Resolves: rhbz#1256493
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/bodhi.c | 17 ++++++++++++++++-
|
|
||||||
1 file changed, 16 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
|
||||||
index 831f5ff..9149347 100644
|
|
||||||
--- a/src/plugins/bodhi.c
|
|
||||||
+++ b/src/plugins/bodhi.c
|
|
||||||
@@ -422,6 +422,10 @@ int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
if (release)
|
|
||||||
{
|
|
||||||
+ /* There are no bodhi updates for Rawhide */
|
|
||||||
+ if (strcasecmp(release, "rawhide") == 0)
|
|
||||||
+ error_msg_and_die("Reselase \"%s\" is not supported",release);
|
|
||||||
+
|
|
||||||
query = strbuf_append_strf(query, "releases=%s&", release);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
@@ -439,10 +443,21 @@ int main(int argc, char **argv)
|
|
||||||
map_string_t *osinfo = new_map_string();
|
|
||||||
problem_data_get_osinfo(problem_data, osinfo);
|
|
||||||
parse_osinfo_for_rhts(osinfo, &product, &version);
|
|
||||||
- query = strbuf_append_strf(query, "releases=f%s&", version);
|
|
||||||
+
|
|
||||||
+ /* There are no bodhi updates for Rawhide */
|
|
||||||
+ bool rawhide = strcasecmp(release, "rawhide") == 0;
|
|
||||||
+ if (!rawhide)
|
|
||||||
+ query = strbuf_append_strf(query, "releases=f%s&", version);
|
|
||||||
+
|
|
||||||
free(product);
|
|
||||||
free(version);
|
|
||||||
free_map_string(osinfo);
|
|
||||||
+
|
|
||||||
+ if (rawhide)
|
|
||||||
+ {
|
|
||||||
+ strbuf_free(query);
|
|
||||||
+ error_msg_and_die("Reselase \"Rawhide\" is not supported");
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
From 167ebb0a8930dcd19c4078773da8c580785053d9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Wed, 26 Aug 2015 13:41:27 +0200
|
|
||||||
Subject: [PATCH] bodhi: add parsing of error responses
|
|
||||||
|
|
||||||
Resolves: rhbz#1256493
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/bodhi.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
|
||||||
1 file changed, 69 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
|
||||||
index 9149347..b348a26 100644
|
|
||||||
--- a/src/plugins/bodhi.c
|
|
||||||
+++ b/src/plugins/bodhi.c
|
|
||||||
@@ -217,6 +217,58 @@ static void print_bodhi(struct bodhi *b)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* bodhi returns following json structure in case of error
|
|
||||||
+{
|
|
||||||
+ "status": "error",
|
|
||||||
+ "errors":
|
|
||||||
+ [
|
|
||||||
+ {
|
|
||||||
+ "location": "querystring",
|
|
||||||
+ "name": "releases",
|
|
||||||
+ "description": "Invalid releases specified: Rawhide"
|
|
||||||
+ }
|
|
||||||
+ ]
|
|
||||||
+}
|
|
||||||
+*/
|
|
||||||
+static void bodhi_print_errors_from_json(json_object *json)
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ json_object *errors_array = NULL;
|
|
||||||
+ bodhi_read_value(json, "errors", &errors_array, BODHI_READ_JSON_OBJ);
|
|
||||||
+ if (!errors_array)
|
|
||||||
+ {
|
|
||||||
+ error_msg("Error: unable to read 'errors' array from json");
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ int errors_len = json_object_array_length(errors_array);
|
|
||||||
+ for (int i = 0; i < errors_len; ++i)
|
|
||||||
+ {
|
|
||||||
+ json_object *error = json_object_array_get_idx(errors_array, i);
|
|
||||||
+ if (!error)
|
|
||||||
+ {
|
|
||||||
+ error_msg("Error: unable to get 'error[%d]'", i);
|
|
||||||
+ json_object_put(errors_array);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ char *desc_item = NULL;
|
|
||||||
+ bodhi_read_value(error, "description", &desc_item, BODHI_READ_STR);
|
|
||||||
+ if (!desc_item)
|
|
||||||
+ {
|
|
||||||
+ error_msg("Error: unable to get 'description' from 'error[%d]'", i);
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ error_msg("Error: %s", desc_item);
|
|
||||||
+ json_object_put(error);
|
|
||||||
+ free(desc_item);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ json_object_put(errors_array);
|
|
||||||
+ return;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
|
||||||
{
|
|
||||||
|
|
||||||
@@ -326,7 +378,7 @@ static GHashTable *bodhi_query_list(const char *query, const char *release)
|
|
||||||
get(post_state, bodhi_url_bugs, "application/x-www-form-urlencoded",
|
|
||||||
headers);
|
|
||||||
|
|
||||||
- if (post_state->http_resp_code != 200)
|
|
||||||
+ if (post_state->http_resp_code != 200 && post_state->http_resp_code != 400)
|
|
||||||
{
|
|
||||||
char *errmsg = post_state->curl_error_msg;
|
|
||||||
if (errmsg && errmsg[0])
|
|
||||||
@@ -340,6 +392,22 @@ static GHashTable *bodhi_query_list(const char *query, const char *release)
|
|
||||||
if (is_error(json))
|
|
||||||
error_msg_and_die("fatal: unable parse response from bodhi server");
|
|
||||||
|
|
||||||
+ /* we must check the http_resp_code because only error responses contain
|
|
||||||
+ * 'status' item. 'bodhi_read_value' function prints an error message in
|
|
||||||
+ * the case it did not found the item */
|
|
||||||
+ if (post_state->http_resp_code != 200)
|
|
||||||
+ {
|
|
||||||
+ char *status_item = NULL;
|
|
||||||
+ bodhi_read_value(json, "status", &status_item, BODHI_READ_STR);
|
|
||||||
+ if (status_item != NULL && strcmp(status_item, "error") == 0)
|
|
||||||
+ {
|
|
||||||
+ free(status_item);
|
|
||||||
+ bodhi_print_errors_from_json(json);
|
|
||||||
+ json_object_put(json);
|
|
||||||
+ xfunc_die(); // error_msg are printed in bodhi_print_errors_from_json
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
GHashTable *bodhi_table = bodhi_parse_json(json, release);
|
|
||||||
json_object_put(json);
|
|
||||||
free_post_state(post_state);
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
From e47863d42f78ddcd404561e21c4c75e6d2feb99e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Wed, 2 Sep 2015 12:29:31 +0200
|
|
||||||
Subject: [PATCH] doc: actualize the abrt-bodhi man page
|
|
||||||
|
|
||||||
Parameters -d and -u were not in the man page.
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
doc/abrt-bodhi.txt | 8 +++++++-
|
|
||||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/doc/abrt-bodhi.txt b/doc/abrt-bodhi.txt
|
|
||||||
index 945a4a9..fe790d6 100644
|
|
||||||
--- a/doc/abrt-bodhi.txt
|
|
||||||
+++ b/doc/abrt-bodhi.txt
|
|
||||||
@@ -7,7 +7,7 @@ abrt-bodhi - The ABRT bodhi client.
|
|
||||||
|
|
||||||
SYNOPSIS
|
|
||||||
--------
|
|
||||||
-'abrt-bodhi' [-v] [-r[RELEASE]] (-b ID1[,ID2,...] | PKG-NAME) [PKG-NAME]...
|
|
||||||
+'abrt-bodhi' [-v] [-r[RELEASE]] [-u URL] [-d DIR] (-b ID1[,ID2,...] | PKG-NAME) [PKG-NAME]...
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
-----------
|
|
||||||
@@ -25,6 +25,12 @@ OPTIONS
|
|
||||||
-b, --bugs ID1,ID2,..
|
|
||||||
Specify any number of Bugzilla IDs (--bugs=1234,5678)
|
|
||||||
|
|
||||||
+-d, --problem-dir DIR::
|
|
||||||
+ Path to problem directory
|
|
||||||
+
|
|
||||||
+-u, --url URL::
|
|
||||||
+ Specify a bodhi server url
|
|
||||||
+
|
|
||||||
AUTHORS
|
|
||||||
-------
|
|
||||||
* ABRT team
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
From 66a27fb723e0930d30ea319484817b3f5ee364dc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Mon, 7 Sep 2015 10:23:30 +0200
|
|
||||||
Subject: [PATCH] bodhi: fix a segfault when testing an os-release opt for
|
|
||||||
'rawhide'
|
|
||||||
|
|
||||||
Resolves: rhbz#1260259
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/bodhi.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
|
||||||
index b348a26..bbd88f7 100644
|
|
||||||
--- a/src/plugins/bodhi.c
|
|
||||||
+++ b/src/plugins/bodhi.c
|
|
||||||
@@ -513,7 +513,7 @@ int main(int argc, char **argv)
|
|
||||||
parse_osinfo_for_rhts(osinfo, &product, &version);
|
|
||||||
|
|
||||||
/* There are no bodhi updates for Rawhide */
|
|
||||||
- bool rawhide = strcasecmp(release, "rawhide") == 0;
|
|
||||||
+ bool rawhide = strcasecmp(version, "rawhide") == 0;
|
|
||||||
if (!rawhide)
|
|
||||||
query = strbuf_append_strf(query, "releases=f%s&", version);
|
|
||||||
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
From 288c3de2a74f82972e35465fb82227cd7bfc5766 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Mon, 21 Sep 2015 10:11:22 +0200
|
|
||||||
Subject: [PATCH] bodhi: fix typo in error messages
|
|
||||||
|
|
||||||
"Reselase" -> "Release"
|
|
||||||
|
|
||||||
Related to rhbz#1264591
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/bodhi.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
|
||||||
index bbd88f7..809d398 100644
|
|
||||||
--- a/src/plugins/bodhi.c
|
|
||||||
+++ b/src/plugins/bodhi.c
|
|
||||||
@@ -492,7 +492,7 @@ int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
/* There are no bodhi updates for Rawhide */
|
|
||||||
if (strcasecmp(release, "rawhide") == 0)
|
|
||||||
- error_msg_and_die("Reselase \"%s\" is not supported",release);
|
|
||||||
+ error_msg_and_die("Release \"%s\" is not supported",release);
|
|
||||||
|
|
||||||
query = strbuf_append_strf(query, "releases=%s&", release);
|
|
||||||
}
|
|
||||||
@@ -524,7 +524,7 @@ int main(int argc, char **argv)
|
|
||||||
if (rawhide)
|
|
||||||
{
|
|
||||||
strbuf_free(query);
|
|
||||||
- error_msg_and_die("Reselase \"Rawhide\" is not supported");
|
|
||||||
+ error_msg_and_die("Release \"Rawhide\" is not supported");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
From edf897e2d62e6cb290b314e41a471894e2a2ca8f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Thu, 24 Sep 2015 10:30:47 +0200
|
|
||||||
Subject: [PATCH] abrt-dump-xorg: support Xorg log backtraces prefixed by (EE)
|
|
||||||
|
|
||||||
The backtraces looks like
|
|
||||||
[ 60244.259] (EE) Backtrace
|
|
||||||
[ 60244.262] (EE) 0: /usr/libexec/Xorg (OsLookupColor+0x139) [0x59add9]
|
|
||||||
[ 60244.264] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f61be425b1f]
|
|
||||||
...
|
|
||||||
[ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
|
||||||
[ 60244.273] (EE)
|
|
||||||
[ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
|
||||||
|
|
||||||
This format of Xorg log files was not supported by abrt-dump-xorg tool.
|
|
||||||
|
|
||||||
Related to rhbz#1264739
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/abrt-dump-xorg.c | 57 +++++++++++++++++++++++++++++---------------
|
|
||||||
1 file changed, 38 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-dump-xorg.c b/src/plugins/abrt-dump-xorg.c
|
|
||||||
index 4aaff11..6cdfc95 100644
|
|
||||||
--- a/src/plugins/abrt-dump-xorg.c
|
|
||||||
+++ b/src/plugins/abrt-dump-xorg.c
|
|
||||||
@@ -51,8 +51,19 @@ static char *skip_pfx(char *p)
|
|
||||||
char *q = strchr(p, ']');
|
|
||||||
if (!q)
|
|
||||||
return p;
|
|
||||||
+
|
|
||||||
if (q[1] == ' ')
|
|
||||||
- return q + 2;
|
|
||||||
+ {
|
|
||||||
+ q += 2;
|
|
||||||
+ /* if there is (EE), ignore it */
|
|
||||||
+ if (strncmp(q, "(EE)", 4) == 0)
|
|
||||||
+ {
|
|
||||||
+ /* if ' ' follows (EE), ignore it too */
|
|
||||||
+ return q + (4 + (q[4] == ' '));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return q;
|
|
||||||
+ }
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -114,24 +125,24 @@ static void save_bt_to_dump_dir(const char *bt, const char *exe, const char *rea
|
|
||||||
/* Called after "Backtrace:" line was read.
|
|
||||||
* Example (yes, stray newline before 'B' is real):
|
|
||||||
[ 86985.879]<space>
|
|
||||||
-Backtrace:
|
|
||||||
-[ 86985.880] 0: /usr/bin/Xorg (xorg_backtrace+0x2f) [0x462d8f]
|
|
||||||
-[ 86985.880] 1: /usr/bin/Xorg (0x400000+0x67b56) [0x467b56]
|
|
||||||
-[ 86985.880] 2: /lib64/libpthread.so.0 (0x30a5800000+0xf4f0) [0x30a580f4f0]
|
|
||||||
-[ 86985.880] 3: /usr/lib64/xorg/modules/extensions/librecord.so (0x7ff6c225e000+0x26c3) [0x7ff6c22606c3]
|
|
||||||
-[ 86985.880] 4: /usr/bin/Xorg (_CallCallbacks+0x3c) [0x43820c]
|
|
||||||
-[ 86985.880] 5: /usr/bin/Xorg (WriteToClient+0x1f5) [0x466315]
|
|
||||||
-[ 86985.880] 6: /usr/lib64/xorg/modules/extensions/libdri2.so (ProcDRI2WaitMSCReply+0x4f) [0x7ff6c1e4feef]
|
|
||||||
-[ 86985.880] 7: /usr/lib64/xorg/modules/extensions/libdri2.so (DRI2WaitMSCComplete+0x52) [0x7ff6c1e4e6d2]
|
|
||||||
-[ 86985.880] 8: /usr/lib64/xorg/modules/drivers/intel_drv.so (0x7ff6c1bfb000+0x25ae4) [0x7ff6c1c20ae4]
|
|
||||||
-[ 86985.880] 9: /usr/lib64/libdrm.so.2 (drmHandleEvent+0xa3) [0x376b407513]
|
|
||||||
-[ 86985.880] 10: /usr/bin/Xorg (WakeupHandler+0x6b) [0x4379db]
|
|
||||||
-[ 86985.880] 11: /usr/bin/Xorg (WaitForSomething+0x1a9) [0x460289]
|
|
||||||
-[ 86985.880] 12: /usr/bin/Xorg (0x400000+0x3379a) [0x43379a]
|
|
||||||
-[ 86985.880] 13: /usr/bin/Xorg (0x400000+0x22dc5) [0x422dc5]
|
|
||||||
-[ 86985.880] 14: /lib64/libc.so.6 (__libc_start_main+0xed) [0x30a542169d]
|
|
||||||
-[ 86985.880] 15: /usr/bin/Xorg (0x400000+0x230b1) [0x4230b1]
|
|
||||||
-[ 86985.880] Segmentation fault at address 0x7ff6bf09e010
|
|
||||||
+[ 60244.259] (EE) Backtrace:
|
|
||||||
+[ 60244.262] (EE) 0: /usr/libexec/Xorg (OsLookupColor+0x139) [0x59add9]
|
|
||||||
+[ 60244.264] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f61be425b1f]
|
|
||||||
+[ 60244.266] (EE) 2: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0xa9fc) [0x7f61b903116c]
|
|
||||||
+[ 60244.267] (EE) 3: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0xbe27) [0x7f61b90339a7]
|
|
||||||
+[ 60244.268] (EE) 4: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x31060) [0x7f61b907db00]
|
|
||||||
+[ 60244.269] (EE) 5: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x3fb73) [0x7f61b909b0c3]
|
|
||||||
+[ 60244.270] (EE) 6: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x3fe1a) [0x7f61b909b77a]
|
|
||||||
+[ 60244.270] (EE) 7: /usr/libexec/Xorg (DamageRegionAppend+0x3783) [0x525003]
|
|
||||||
+[ 60244.270] (EE) 8: /usr/libexec/Xorg (SendGraphicsExpose+0xeb3) [0x4340b3]
|
|
||||||
+[ 60244.270] (EE) 9: /usr/libexec/Xorg (SendErrorToClient+0x2df) [0x43684f]
|
|
||||||
+[ 60244.271] (EE) 10: /usr/libexec/Xorg (remove_fs_handlers+0x453) [0x43a893]
|
|
||||||
+[ 60244.272] (EE) 11: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f61be411580]
|
|
||||||
+[ 60244.272] (EE) 12: /usr/libexec/Xorg (_start+0x29) [0x424b79]
|
|
||||||
+[ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
|
||||||
+[ 60244.273] (EE)
|
|
||||||
+[ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
|
||||||
+[ 60244.273] (EE)
|
|
||||||
*/
|
|
||||||
static void process_xorg_bt(void)
|
|
||||||
{
|
|
||||||
@@ -144,6 +155,14 @@ static void process_xorg_bt(void)
|
|
||||||
{
|
|
||||||
char *p = skip_pfx(line);
|
|
||||||
|
|
||||||
+ /* ignore empty lines
|
|
||||||
+ * [ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
|
||||||
+ * [ 60244.273] (EE) <---
|
|
||||||
+ * [ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
|
||||||
+ */
|
|
||||||
+ if (*p == '\0')
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
/* xorg-server-1.12.0/os/osinit.c:
|
|
||||||
* if (sip->si_code == SI_USER) {
|
|
||||||
* ErrorF("Recieved signal %d sent by process %ld, uid %ld\n",
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
From 7b393bb4b8eae7873996467ea11706127e1dbf85 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Richard Marko <rmarko@fedoraproject.org>
|
|
||||||
Date: Wed, 17 Jun 2015 15:16:03 +0200
|
|
||||||
Subject: [PATCH] a-a-a-ccpp-local don't delete build_ids
|
|
||||||
|
|
||||||
rm -f always succeeds that causes further actions to run.
|
|
||||||
|
|
||||||
Signed-off-by: Richard Marko <rmarko@fedoraproject.org>
|
|
||||||
---
|
|
||||||
src/plugins/abrt-action-analyze-ccpp-local.in | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-action-analyze-ccpp-local.in b/src/plugins/abrt-action-analyze-ccpp-local.in
|
|
||||||
index 5a42a03..d3df01d 100644
|
|
||||||
--- a/src/plugins/abrt-action-analyze-ccpp-local.in
|
|
||||||
+++ b/src/plugins/abrt-action-analyze-ccpp-local.in
|
|
||||||
@@ -28,7 +28,6 @@ if $INSTALL_DI; then
|
|
||||||
else
|
|
||||||
abrt-action-analyze-core --core=coredump -o build_ids && @LIBEXEC_DIR@/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096
|
|
||||||
fi
|
|
||||||
- rm -f build_ids
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $? = 0 ]; then
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
From e5a29b08bb48b408c5e88fa5382f8253ca90a937 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Richard Marko <rmarko@fedoraproject.org>
|
|
||||||
Date: Thu, 8 Oct 2015 15:03:26 +0200
|
|
||||||
Subject: [PATCH] abrt-retrace-client: use atoll for _size conversion
|
|
||||||
|
|
||||||
Otherwise we get
|
|
||||||
|
|
||||||
The size of your crash is 28.1 MiB, but the retrace server only accepts
|
|
||||||
crashes smaller or equal to 16.0 EiB.
|
|
||||||
|
|
||||||
(gdb) print settings->max_unpacked_size
|
|
||||||
$4 = -50331648
|
|
||||||
---
|
|
||||||
src/plugins/abrt-retrace-client.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-retrace-client.c b/src/plugins/abrt-retrace-client.c
|
|
||||||
index 0b67773..540cdc9 100644
|
|
||||||
--- a/src/plugins/abrt-retrace-client.c
|
|
||||||
+++ b/src/plugins/abrt-retrace-client.c
|
|
||||||
@@ -256,9 +256,9 @@ struct retrace_settings *get_settings()
|
|
||||||
else if (0 == strcasecmp("max_running_tasks", row))
|
|
||||||
settings->max_running_tasks = atoi(value);
|
|
||||||
else if (0 == strcasecmp("max_packed_size", row))
|
|
||||||
- settings->max_packed_size = atoi(value) * 1024 * 1024;
|
|
||||||
+ settings->max_packed_size = atoll(value) * 1024 * 1024;
|
|
||||||
else if (0 == strcasecmp("max_unpacked_size", row))
|
|
||||||
- settings->max_unpacked_size = atoi(value) * 1024 * 1024;
|
|
||||||
+ settings->max_unpacked_size = atoll(value) * 1024 * 1024;
|
|
||||||
else if (0 == strcasecmp("supported_formats", row))
|
|
||||||
{
|
|
||||||
char *space;
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
From 6bb7cdc454a824826362c68af66cdb92b4bc6653 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Mon, 12 Oct 2015 14:03:13 +0200
|
|
||||||
Subject: [PATCH] doc: fix default DumpLocation in abrt.conf man page
|
|
||||||
|
|
||||||
ABRT no longer stores crashes to /var/tmp/abrt by default.
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
doc/abrt.conf.txt | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/doc/abrt.conf.txt b/doc/abrt.conf.txt
|
|
||||||
index d782e3d..6626596 100644
|
|
||||||
--- a/doc/abrt.conf.txt
|
|
||||||
+++ b/doc/abrt.conf.txt
|
|
||||||
@@ -16,7 +16,7 @@ A description of each item follows:
|
|
||||||
|
|
||||||
DumpLocation = 'directory'::
|
|
||||||
The directory where should 'abrt' store coredumps and all files which are
|
|
||||||
- needed for reporting. The default is /var/tmp/abrt.
|
|
||||||
+ needed for reporting. The default is /var/spool/abrt.
|
|
||||||
|
|
||||||
MaxCrashReportsSize = 'number'::
|
|
||||||
The maximum disk space (specified in megabytes) that 'abrt'
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
From 97633ab28bef2e65032fb81063922e3106dd135b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 28 Oct 2015 00:21:12 +0100
|
|
||||||
Subject: [PATCH] dbus: ensure expected bytes width of DBus numbers
|
|
||||||
|
|
||||||
t - UINT64 - guint64 (unsigned long is not wide enough on 32bit architectures)
|
|
||||||
|
|
||||||
Resolves: rhbz#1256456
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/dbus/abrt-dbus.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/dbus/abrt-dbus.c b/src/dbus/abrt-dbus.c
|
|
||||||
index 44778a2..500ddb2 100644
|
|
||||||
--- a/src/dbus/abrt-dbus.c
|
|
||||||
+++ b/src/dbus/abrt-dbus.c
|
|
||||||
@@ -625,8 +625,8 @@ static void handle_method_call(GDBusConnection *connection,
|
|
||||||
|
|
||||||
g_variant_builder_add(response_builder, "{s(its)}",
|
|
||||||
element_name,
|
|
||||||
- element_info->flags,
|
|
||||||
- size,
|
|
||||||
+ (gint32)element_info->flags,
|
|
||||||
+ (guint64)size,
|
|
||||||
element_info->content);
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
||||||
From 001066cf6238ee3a61f1a87607272e9736d3e371 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Mon, 26 Oct 2015 13:57:51 +0100
|
|
||||||
Subject: [PATCH] doc: add missing man page for abrt-dump-journal-core
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
doc/Makefile.am | 1 +
|
|
||||||
doc/abrt-dump-journal-core.txt | 65 ++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 66 insertions(+)
|
|
||||||
create mode 100644 doc/abrt-dump-journal-core.txt
|
|
||||||
|
|
||||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
|
||||||
index fdd08cf..ec6b3c5 100644
|
|
||||||
--- a/doc/Makefile.am
|
|
||||||
+++ b/doc/Makefile.am
|
|
||||||
@@ -19,6 +19,7 @@ MAN1_TXT += abrt-action-perform-ccpp-analysis.txt
|
|
||||||
MAN1_TXT += abrt-action-notify.txt
|
|
||||||
MAN1_TXT += abrt-applet.txt
|
|
||||||
MAN1_TXT += abrt-dump-oops.txt
|
|
||||||
+MAN1_TXT += abrt-dump-journal-core.txt
|
|
||||||
MAN1_TXT += abrt-dump-journal-oops.txt
|
|
||||||
MAN1_TXT += abrt-dump-xorg.txt
|
|
||||||
MAN1_TXT += abrt-auto-reporting.txt
|
|
||||||
diff --git a/doc/abrt-dump-journal-core.txt b/doc/abrt-dump-journal-core.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..25d5e57
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/doc/abrt-dump-journal-core.txt
|
|
||||||
@@ -0,0 +1,65 @@
|
|
||||||
+abrt-dump-journal-core(1)
|
|
||||||
+=========================
|
|
||||||
+
|
|
||||||
+NAME
|
|
||||||
+----
|
|
||||||
+abrt-dump-journal-core - Extract coredumps from systemd-journal
|
|
||||||
+
|
|
||||||
+SYNOPSIS
|
|
||||||
+--------
|
|
||||||
+'abrt-dump-journal-core' [-vsf] [-e]/[-c CURSOR] [-t INT]/[-T] [-d DIR]/[-D]
|
|
||||||
+
|
|
||||||
+DESCRIPTION
|
|
||||||
+-----------
|
|
||||||
+This tool creates problem directory from coredumps extracted from
|
|
||||||
+systemd-journal.
|
|
||||||
+The tool can follow systemd-journal and extract coredumps in time of their
|
|
||||||
+occurrence.
|
|
||||||
+
|
|
||||||
+The following start from the last seen cursor. If the last seen cursor file
|
|
||||||
+does not exist, the following start by scanning the entire sytemd-journal or
|
|
||||||
+from the end if '-e' option is specified.
|
|
||||||
+
|
|
||||||
+-c and -e options conflicts because both specifies the first read message.
|
|
||||||
+
|
|
||||||
+-e is useful only for -f because the following of journal starts by reading
|
|
||||||
+the entire journal if the last seen possition is not available.
|
|
||||||
+
|
|
||||||
+FILES
|
|
||||||
+-----
|
|
||||||
+/var/lib/abrt/abrt-dump-journal-core.state::
|
|
||||||
+ State file where systemd-journal cursor to the last seen message is saved
|
|
||||||
+
|
|
||||||
+OPTIONS
|
|
||||||
+-------
|
|
||||||
+-v, --verbose::
|
|
||||||
+ Be more verbose. Can be given multiple times.
|
|
||||||
+
|
|
||||||
+-s::
|
|
||||||
+ Log to syslog
|
|
||||||
+
|
|
||||||
+-d DIR::
|
|
||||||
+ Create new problem directory in DIR for every coredump
|
|
||||||
+
|
|
||||||
+-D::
|
|
||||||
+ Same as -d DumpLocation, DumpLocation is specified in abrt.conf
|
|
||||||
+
|
|
||||||
+-e::
|
|
||||||
+ Starts following systemd-journal from the end
|
|
||||||
+
|
|
||||||
+-t INT::
|
|
||||||
+ Throttle problem directory creation to 1 per INT second
|
|
||||||
+
|
|
||||||
+-T::
|
|
||||||
+ Same as -t INT, INT is specified in plugins/CCpp.conf
|
|
||||||
+
|
|
||||||
+-f::
|
|
||||||
+ Follow systemd-journal from the last seen position (if available)
|
|
||||||
+
|
|
||||||
+SEE ALSO
|
|
||||||
+--------
|
|
||||||
+abrt.conf(5), journalctl(1)
|
|
||||||
+
|
|
||||||
+AUTHORS
|
|
||||||
+-------
|
|
||||||
+* ABRT team
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
From cf9e5388ac7d94ab5aa34b274c32d735b702c48a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Mon, 26 Oct 2015 15:21:07 +0100
|
|
||||||
Subject: [PATCH] a-d-journal-core: set root owner for created dump directory
|
|
||||||
|
|
||||||
Without this commit abrt-server fails during check the right owner and group of
|
|
||||||
dump dirs.
|
|
||||||
|
|
||||||
Related to rhbz#1269827
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/abrt-dump-journal-core.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-dump-journal-core.c b/src/plugins/abrt-dump-journal-core.c
|
|
||||||
index 7ad69e8..02d5afe 100644
|
|
||||||
--- a/src/plugins/abrt-dump-journal-core.c
|
|
||||||
+++ b/src/plugins/abrt-dump-journal-core.c
|
|
||||||
@@ -302,7 +302,7 @@ save_systemd_coredump_in_dump_directory(struct dump_dir *dd, struct crash_info *
|
|
||||||
static int
|
|
||||||
abrt_journal_core_to_abrt_problem(struct crash_info *info, const char *dump_location)
|
|
||||||
{
|
|
||||||
- struct dump_dir *dd = create_dump_dir(dump_location, "ccpp", info->ci_uid,
|
|
||||||
+ struct dump_dir *dd = create_dump_dir(dump_location, "ccpp", /*fs owner*/0,
|
|
||||||
(save_data_call_back)save_systemd_coredump_in_dump_directory, info);
|
|
||||||
|
|
||||||
if (dd != NULL)
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
From 8b6d1511bb89548c60a472ddbaefbf00743be1ea Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Tue, 3 Nov 2015 12:31:38 +0100
|
|
||||||
Subject: [PATCH] doc: a-a-analyze-xorg fix path to conf file
|
|
||||||
|
|
||||||
xorg.conf is no longer located in /etc/abrt/xorg.conf but in
|
|
||||||
/etc/abrt/plugins/xorg.conf.
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
doc/abrt-action-analyze-xorg.txt | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/abrt-action-analyze-xorg.txt b/doc/abrt-action-analyze-xorg.txt
|
|
||||||
index 880c6fb..aa72249 100644
|
|
||||||
--- a/doc/abrt-action-analyze-xorg.txt
|
|
||||||
+++ b/doc/abrt-action-analyze-xorg.txt
|
|
||||||
@@ -39,8 +39,8 @@ OPTIONS
|
|
||||||
|
|
||||||
FILES
|
|
||||||
-----
|
|
||||||
-/etc/abrt/xorg.conf
|
|
||||||
- List of modules which, when loaded, should make Xorg crashes non-reportable.
|
|
||||||
+/etc/abrt/plugins/xorg.conf
|
|
||||||
+ Configuration file for ABRT's tools which work with Xorg crashes
|
|
||||||
|
|
||||||
AUTHORS
|
|
||||||
-------
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
From 02fa8cc3f0c63b61b4994ac66e5c7e304013b25f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Tue, 10 Nov 2015 13:22:21 +0100
|
|
||||||
Subject: [PATCH] a-a-s-p-data: fix segfault if GPGKeysDir isn't configured
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/daemon/abrt-action-save-package-data.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/daemon/abrt-action-save-package-data.c b/src/daemon/abrt-action-save-package-data.c
|
|
||||||
index 7054f06..72c9878 100644
|
|
||||||
--- a/src/daemon/abrt-action-save-package-data.c
|
|
||||||
+++ b/src/daemon/abrt-action-save-package-data.c
|
|
||||||
@@ -88,7 +88,7 @@ static void load_gpg_keys(void)
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *gpg_keys_dir = get_map_string_item_or_NULL(settings, "GPGKeysDir");
|
|
||||||
- if (strcmp(gpg_keys_dir, "") != 0)
|
|
||||||
+ if (gpg_keys_dir != NULL && strcmp(gpg_keys_dir, "") != 0)
|
|
||||||
{
|
|
||||||
log_debug("Reading gpg keys from '%s'", gpg_keys_dir);
|
|
||||||
GHashTable *done_set = g_hash_table_new(g_str_hash, g_str_equal);
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
From a16d12d27e5c12f3e4ab5defaf775a692c405206 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 11 Nov 2015 13:19:35 +0100
|
|
||||||
Subject: [PATCH] ccpp: make crashes of processes with locked memory
|
|
||||||
not-reportable
|
|
||||||
|
|
||||||
Lets begin with a simply policy preventing users from accidental
|
|
||||||
publication of problem data with security sensitive data.
|
|
||||||
|
|
||||||
"not-reportable" problems can still be auto-reported. That is not an
|
|
||||||
security issue because uReports does not contain any user data stored in
|
|
||||||
process' memory (only stack-trace without values local|global variables
|
|
||||||
and function arguments).
|
|
||||||
|
|
||||||
Related to #796.
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/hooks/abrt-hook-ccpp.c | 21 +++++++++++++++++++++
|
|
||||||
1 file changed, 21 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
index 809b45e..4b79900 100644
|
|
||||||
--- a/src/hooks/abrt-hook-ccpp.c
|
|
||||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
@@ -868,6 +868,27 @@ int main(int argc, char** argv)
|
|
||||||
|
|
||||||
dd_save_text(dd, FILENAME_ABRT_VERSION, VERSION);
|
|
||||||
|
|
||||||
+ /* In case of errors, treat the process as if it has locked memory */
|
|
||||||
+ long unsigned lck_bytes = ULONG_MAX;
|
|
||||||
+ const char *vmlck = strstr(proc_pid_status, "VmLck:");
|
|
||||||
+ if (vmlck == NULL)
|
|
||||||
+ error_msg("/proc/%s/status does not contain 'VmLck:' line", pid_str);
|
|
||||||
+ else if (1 != sscanf(vmlck + 6, "%lu kB\n", &lck_bytes))
|
|
||||||
+ error_msg("Failed to parse 'VmLck:' line in /proc/%s/status", pid_str);
|
|
||||||
+
|
|
||||||
+ if (lck_bytes)
|
|
||||||
+ {
|
|
||||||
+ log_notice("Process %s of user %lu has locked memory",
|
|
||||||
+ pid_str, (long unsigned)uid);
|
|
||||||
+
|
|
||||||
+ dd_mark_as_notreportable(dd, "The process had locked memory "
|
|
||||||
+ "which usually indicates efforts to protect sensitive "
|
|
||||||
+ "data (passwords) from being written to disk.\n"
|
|
||||||
+ "In order to avoid sensitive information leakages, "
|
|
||||||
+ "ABRT will not allow you to report this problem to "
|
|
||||||
+ "bug tracking tools");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (setting_SaveBinaryImage)
|
|
||||||
{
|
|
||||||
if (save_crashing_binary(pid, dd))
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,103 +0,0 @@
|
||||||
From 4e5dfba1a1a4d5c5e49b7f6320bd2cb8052f86d1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 30 Sep 2015 11:50:18 +0200
|
|
||||||
Subject: [PATCH] a-a-i-d-to-abrt-cache: make own random temporary directory
|
|
||||||
|
|
||||||
The set-user-ID wrapper must use own new temporary directory in order to
|
|
||||||
avoid security issues with unpacking specially crafted debuginfo
|
|
||||||
packages that might be used to create files or symlinks anywhere on the
|
|
||||||
file system as the abrt user.
|
|
||||||
|
|
||||||
Withot the forking code the temporary directory would remain on the
|
|
||||||
filesystem in the case where all debuginfo data are already available.
|
|
||||||
This is caused by the fact that the underlying libreport functionality
|
|
||||||
accepts path to a desired temporary directory and creates it only if
|
|
||||||
necessary. Otherwise, the directory is not touched at all.
|
|
||||||
|
|
||||||
This commit addresses CVE-2015-5273
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/Makefile.am | 1 +
|
|
||||||
.../abrt-action-install-debuginfo-to-abrt-cache.c | 41 +++++++++++++++++++---
|
|
||||||
2 files changed, 38 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
|
||||||
index 1c1ff8a..c5ea1ec 100644
|
|
||||||
--- a/src/plugins/Makefile.am
|
|
||||||
+++ b/src/plugins/Makefile.am
|
|
||||||
@@ -328,6 +328,7 @@ abrt_action_install_debuginfo_to_abrt_cache_CPPFLAGS = \
|
|
||||||
-D_GNU_SOURCE \
|
|
||||||
-DBIN_DIR=\"$(bindir)\" \
|
|
||||||
-DSBIN_DIR=\"$(sbindir)\" \
|
|
||||||
+ -DLARGE_DATA_TMP_DIR=\"$(LARGE_DATA_TMP_DIR)\" \
|
|
||||||
$(LIBREPORT_CFLAGS) \
|
|
||||||
-Wall -Wwrite-strings \
|
|
||||||
-fPIE
|
|
||||||
diff --git a/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c b/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c
|
|
||||||
index 81b1486..52d00de 100644
|
|
||||||
--- a/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c
|
|
||||||
+++ b/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c
|
|
||||||
@@ -108,8 +108,14 @@ int main(int argc, char **argv)
|
|
||||||
build_ids_self_fd = xasprintf("/proc/self/fd/%d", build_ids_fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* name, -v, --ids, -, -y, -e, EXACT, -r, REPO, --, NULL */
|
|
||||||
- const char *args[11];
|
|
||||||
+ char tmp_directory[] = LARGE_DATA_TMP_DIR"/abrt-tmp-debuginfo.XXXXXX";
|
|
||||||
+ if (mkdtemp(tmp_directory) == NULL)
|
|
||||||
+ perror_msg_and_die("Failed to create working directory");
|
|
||||||
+
|
|
||||||
+ log_info("Created working directory: %s", tmp_directory);
|
|
||||||
+
|
|
||||||
+ /* name, -v, --ids, -, -y, -e, EXACT, -r, REPO, -t, PATH, --, NULL */
|
|
||||||
+ const char *args[13];
|
|
||||||
{
|
|
||||||
const char *verbs[] = { "", "-v", "-vv", "-vvv" };
|
|
||||||
unsigned i = 0;
|
|
||||||
@@ -130,6 +136,8 @@ int main(int argc, char **argv)
|
|
||||||
args[i++] = "--repo";
|
|
||||||
args[i++] = repo;
|
|
||||||
}
|
|
||||||
+ args[i++] = "--tmpdir";
|
|
||||||
+ args[i++] = tmp_directory;
|
|
||||||
args[i++] = "--";
|
|
||||||
args[i] = NULL;
|
|
||||||
}
|
|
||||||
@@ -204,6 +212,31 @@ int main(int argc, char **argv)
|
|
||||||
umask(0022);
|
|
||||||
}
|
|
||||||
|
|
||||||
- execvp(EXECUTABLE, (char **)args);
|
|
||||||
- error_msg_and_die("Can't execute %s", EXECUTABLE);
|
|
||||||
+ pid_t pid = fork();
|
|
||||||
+ if (pid < 0)
|
|
||||||
+ perror_msg_and_die("fork");
|
|
||||||
+
|
|
||||||
+ if (pid == 0)
|
|
||||||
+ {
|
|
||||||
+ execvp(EXECUTABLE, (char **)args);
|
|
||||||
+ error_msg_and_die("Can't execute %s", EXECUTABLE);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ int status;
|
|
||||||
+ if (safe_waitpid(pid, &status, 0) < 0)
|
|
||||||
+ perror_msg_and_die("waitpid");
|
|
||||||
+
|
|
||||||
+ if (rmdir(tmp_directory) >= 0)
|
|
||||||
+ log_info("Removed working directory: %s", tmp_directory);
|
|
||||||
+ else if (errno != ENOENT)
|
|
||||||
+ perror_msg("Failed to remove working directory");
|
|
||||||
+
|
|
||||||
+ /* Normal execution should exit here. */
|
|
||||||
+ if (WIFEXITED(status))
|
|
||||||
+ return WEXITSTATUS(status);
|
|
||||||
+
|
|
||||||
+ if (WIFSIGNALED(status))
|
|
||||||
+ error_msg_and_die("Child terminated with signal %d", WTERMSIG(status));
|
|
||||||
+
|
|
||||||
+ error_msg_and_die("Child exit failed");
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
From 1cb9013d7ec62b282fd404062e88371916a12fad Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 30 Sep 2015 12:17:47 +0200
|
|
||||||
Subject: [PATCH] conf: introduce DebugLevel
|
|
||||||
|
|
||||||
ABRT should ignore problems caused by ABRT tools if DebugLevel == 0.
|
|
||||||
DebugLevel is set to 0 by default.
|
|
||||||
|
|
||||||
Related to CVE-2015-5287
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
doc/abrt.conf.txt | 8 ++++++++
|
|
||||||
src/daemon/abrt.conf | 8 ++++++++
|
|
||||||
src/include/libabrt.h | 2 ++
|
|
||||||
src/lib/abrt_conf.c | 14 ++++++++++++++
|
|
||||||
4 files changed, 32 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/abrt.conf.txt b/doc/abrt.conf.txt
|
|
||||||
index 6626596..1276f55 100644
|
|
||||||
--- a/doc/abrt.conf.txt
|
|
||||||
+++ b/doc/abrt.conf.txt
|
|
||||||
@@ -36,6 +36,14 @@ DeleteUploaded = 'yes/no'::
|
|
||||||
or not.
|
|
||||||
The default value is 'no'.
|
|
||||||
|
|
||||||
+DebugLevel = '0-100':
|
|
||||||
+ Allows ABRT tools to detect problems in ABRT itself. By increasing the value
|
|
||||||
+ you can force ABRT to detect, process and report problems in ABRT. You have
|
|
||||||
+ to bare in mind that ABRT might fall into an infinite loop when handling
|
|
||||||
+ problems caused by itself.
|
|
||||||
+ The default is 0 (non debug mode).
|
|
||||||
+
|
|
||||||
+
|
|
||||||
SEE ALSO
|
|
||||||
--------
|
|
||||||
abrtd(8)
|
|
||||||
diff --git a/src/daemon/abrt.conf b/src/daemon/abrt.conf
|
|
||||||
index 0050c6d..dbc2007 100644
|
|
||||||
--- a/src/daemon/abrt.conf
|
|
||||||
+++ b/src/daemon/abrt.conf
|
|
||||||
@@ -59,3 +59,11 @@ AutoreportingEnabled = no
|
|
||||||
# SPECIAL ROOT DIRECTORY IN USER MOUNT NAMESAPCE
|
|
||||||
#
|
|
||||||
# ExploreChroots = false
|
|
||||||
+
|
|
||||||
+# Allows ABRT tools to detect problems in ABRT itself. By increasing the value
|
|
||||||
+# you can force ABRT to detect, process and report problems in ABRT. You have
|
|
||||||
+# to bare in mind that ABRT might fall into an infinite loop when handling
|
|
||||||
+# problems caused by itself.
|
|
||||||
+# The default is 0 (non debug mode).
|
|
||||||
+#
|
|
||||||
+# DebugLevel = 0
|
|
||||||
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
|
|
||||||
index da565f9..6f89959 100644
|
|
||||||
--- a/src/include/libabrt.h
|
|
||||||
+++ b/src/include/libabrt.h
|
|
||||||
@@ -77,6 +77,8 @@ extern char * g_settings_autoreporting_event;
|
|
||||||
extern bool g_settings_shortenedreporting;
|
|
||||||
#define g_settings_explorechroots abrt_g_settings_explorechroots
|
|
||||||
extern bool g_settings_explorechroots;
|
|
||||||
+#define g_settings_debug_level abrt_g_settings_debug_level
|
|
||||||
+extern unsigned int g_settings_debug_level;
|
|
||||||
|
|
||||||
|
|
||||||
#define load_abrt_conf abrt_load_abrt_conf
|
|
||||||
diff --git a/src/lib/abrt_conf.c b/src/lib/abrt_conf.c
|
|
||||||
index 46ff689..f623344 100644
|
|
||||||
--- a/src/lib/abrt_conf.c
|
|
||||||
+++ b/src/lib/abrt_conf.c
|
|
||||||
@@ -28,6 +28,7 @@ bool g_settings_autoreporting = 0;
|
|
||||||
char * g_settings_autoreporting_event = NULL;
|
|
||||||
bool g_settings_shortenedreporting = 0;
|
|
||||||
bool g_settings_explorechroots = 0;
|
|
||||||
+unsigned int g_settings_debug_level = 0;
|
|
||||||
|
|
||||||
void free_abrt_conf_data()
|
|
||||||
{
|
|
||||||
@@ -116,6 +117,19 @@ static void ParseCommon(map_string_t *settings, const char *conf_filename)
|
|
||||||
else
|
|
||||||
g_settings_explorechroots = false;
|
|
||||||
|
|
||||||
+ value = get_map_string_item_or_NULL(settings, "DebugLevel");
|
|
||||||
+ if (value)
|
|
||||||
+ {
|
|
||||||
+ char *end;
|
|
||||||
+ errno = 0;
|
|
||||||
+ unsigned long ul = strtoul(value, &end, 10);
|
|
||||||
+ if (errno || end == value || *end != '\0' || ul > INT_MAX)
|
|
||||||
+ error_msg("Error parsing %s setting: '%s'", "DebugLevel", value);
|
|
||||||
+ else
|
|
||||||
+ g_settings_debug_level = ul;
|
|
||||||
+ remove_map_string_item(settings, "DebugLevel");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
GHashTableIter iter;
|
|
||||||
const char *name;
|
|
||||||
/*char *value; - already declared */
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
From 82264feebb3a816098e68f0dce1502521b6b7a92 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 30 Sep 2015 12:19:48 +0200
|
|
||||||
Subject: [PATCH] ccpp: ignore crashes of ABRT binaries if DebugLevel == 0
|
|
||||||
|
|
||||||
Prior this commit abrt-hook-ccpp was saved core file of any
|
|
||||||
crashed process executing program whose name starts with "abrt" in
|
|
||||||
DUMP_LOCATION.
|
|
||||||
|
|
||||||
ABRT does not check size constraints of these core files, so the files
|
|
||||||
could consume an uncontrolled amount of disk space.
|
|
||||||
|
|
||||||
Related to CVE-2015-5287
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/hooks/abrt-hook-ccpp.c | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
index 4b79900..4a31b81 100644
|
|
||||||
--- a/src/hooks/abrt-hook-ccpp.c
|
|
||||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
@@ -703,6 +703,13 @@ int main(int argc, char** argv)
|
|
||||||
const char *last_slash = strrchr(executable, '/');
|
|
||||||
if (last_slash && strncmp(++last_slash, "abrt", 4) == 0)
|
|
||||||
{
|
|
||||||
+ if (g_settings_debug_level == 0)
|
|
||||||
+ {
|
|
||||||
+ log_warning("Ignoring crash of %s (SIG%s).",
|
|
||||||
+ executable, signame ? signame : signal_str);
|
|
||||||
+ goto cleanup_and_exit;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* If abrtd/abrt-foo crashes, we don't want to create a _directory_,
|
|
||||||
* since that can make new copy of abrtd to process it,
|
|
||||||
* and maybe crash again...
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
From fce92be28e87f4bbcf637ec06cc3e28652628684 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 30 Sep 2015 12:24:32 +0200
|
|
||||||
Subject: [PATCH] ccpp: save abrt core files only to new files
|
|
||||||
|
|
||||||
Prior this commit abrt-hook-ccpp saved a core file generated by a
|
|
||||||
process running a program whose name starts with "abrt" in
|
|
||||||
DUMP_LOCATION/$(basename program)-coredump. If the file was a symlink,
|
|
||||||
the hook followed and wrote core file to the symlink's target.
|
|
||||||
|
|
||||||
Addresses CVE-2015-5287
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/hooks/abrt-hook-ccpp.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
index 4a31b81..58d9c28 100644
|
|
||||||
--- a/src/hooks/abrt-hook-ccpp.c
|
|
||||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
@@ -718,7 +718,8 @@ int main(int argc, char** argv)
|
|
||||||
if (snprintf(path, sizeof(path), "%s/%s-coredump", g_settings_dump_location, last_slash) >= sizeof(path))
|
|
||||||
error_msg_and_die("Error saving '%s': truncated long file path", path);
|
|
||||||
|
|
||||||
- int abrt_core_fd = xopen3(path, O_WRONLY | O_CREAT | O_TRUNC, 0600);
|
|
||||||
+ unlink(path);
|
|
||||||
+ int abrt_core_fd = xopen3(path, O_WRONLY | O_CREAT | O_EXCL, 0600);
|
|
||||||
off_t core_size = copyfd_eof(STDIN_FILENO, abrt_core_fd, COPYFD_SPARSE);
|
|
||||||
if (core_size < 0 || fsync(abrt_core_fd) != 0)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
||||||
From d8a3bd0d464f5b75ac360f4ee4e3cc6927a09199 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 30 Sep 2015 14:13:35 +0200
|
|
||||||
Subject: [PATCH] lib: add convenient wrappers for ensuring writable dir
|
|
||||||
|
|
||||||
Replace lchown with fchown and chmod with fchmod.
|
|
||||||
|
|
||||||
Related CVE-2015-5287
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/include/libabrt.h | 4 ++++
|
|
||||||
src/lib/hooklib.c | 41 ++++++++++++++++++++++++++++++++++-------
|
|
||||||
2 files changed, 38 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
|
|
||||||
index 6f89959..b26dcc6 100644
|
|
||||||
--- a/src/include/libabrt.h
|
|
||||||
+++ b/src/include/libabrt.h
|
|
||||||
@@ -42,8 +42,12 @@ int low_free_space(unsigned setting_MaxCrashReportsSize, const char *dump_locati
|
|
||||||
|
|
||||||
#define trim_problem_dirs abrt_trim_problem_dirs
|
|
||||||
void trim_problem_dirs(const char *dirname, double cap_size, const char *exclude_path);
|
|
||||||
+#define ensure_writable_dir_id abrt_ensure_writable_dir_uid_git
|
|
||||||
+void ensure_writable_dir_uid_gid(const char *dir, mode_t mode, uid_t uid, gid_t gid);
|
|
||||||
#define ensure_writable_dir abrt_ensure_writable_dir
|
|
||||||
void ensure_writable_dir(const char *dir, mode_t mode, const char *user);
|
|
||||||
+#define ensure_writable_dir_group abrt_ensure_writable_dir_group
|
|
||||||
+void ensure_writable_dir_group(const char *dir, mode_t mode, const char *user, const char *group);
|
|
||||||
#define run_unstrip_n abrt_run_unstrip_n
|
|
||||||
char *run_unstrip_n(const char *dump_dir_name, unsigned timeout_sec);
|
|
||||||
#define get_backtrace abrt_get_backtrace
|
|
||||||
diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c
|
|
||||||
index 2b76eea..0daa144 100644
|
|
||||||
--- a/src/lib/hooklib.c
|
|
||||||
+++ b/src/lib/hooklib.c
|
|
||||||
@@ -476,23 +476,50 @@ int signal_is_fatal(int signal_no, const char **name)
|
|
||||||
return signame != NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-void ensure_writable_dir(const char *dir, mode_t mode, const char *user)
|
|
||||||
+void ensure_writable_dir_uid_gid(const char *dir, mode_t mode, uid_t uid, gid_t gid)
|
|
||||||
{
|
|
||||||
struct stat sb;
|
|
||||||
+ int dir_fd;
|
|
||||||
|
|
||||||
if (mkdir(dir, mode) != 0 && errno != EEXIST)
|
|
||||||
perror_msg_and_die("Can't create '%s'", dir);
|
|
||||||
- if (stat(dir, &sb) != 0 || !S_ISDIR(sb.st_mode))
|
|
||||||
- error_msg_and_die("'%s' is not a directory", dir);
|
|
||||||
|
|
||||||
+ dir_fd = open(dir, O_DIRECTORY | O_NOFOLLOW);
|
|
||||||
+ if (dir_fd < 0)
|
|
||||||
+ perror_msg_and_die("Can't open directory '%s'", dir);
|
|
||||||
+
|
|
||||||
+ if (fstat(dir_fd, &sb) != 0)
|
|
||||||
+ perror_msg_and_die("Can't stat directory '%s'", dir);
|
|
||||||
+
|
|
||||||
+ if ((sb.st_uid != uid || sb.st_gid != gid) && fchown(dir_fd, uid, gid) != 0)
|
|
||||||
+ perror_msg_and_die("Can't set owner %u:%u on '%s'", (unsigned int)uid, (unsigned int)gid, dir);
|
|
||||||
+
|
|
||||||
+ if ((sb.st_mode & 07777) != mode && fchmod(dir_fd, mode) != 0)
|
|
||||||
+ perror_msg_and_die("Can't set mode %o on '%s'", mode, dir);
|
|
||||||
+
|
|
||||||
+ close(dir_fd);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void ensure_writable_dir(const char *dir, mode_t mode, const char *user)
|
|
||||||
+{
|
|
||||||
+ struct passwd *pw = getpwnam(user);
|
|
||||||
+ if (!pw)
|
|
||||||
+ perror_msg_and_die("Can't find user '%s'", user);
|
|
||||||
+
|
|
||||||
+ ensure_writable_dir_uid_gid(dir, mode, pw->pw_uid, pw->pw_gid);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void ensure_writable_dir_group(const char *dir, mode_t mode, const char *user, const char *group)
|
|
||||||
+{
|
|
||||||
struct passwd *pw = getpwnam(user);
|
|
||||||
if (!pw)
|
|
||||||
perror_msg_and_die("Can't find user '%s'", user);
|
|
||||||
|
|
||||||
- if ((sb.st_uid != pw->pw_uid || sb.st_gid != pw->pw_gid) && lchown(dir, pw->pw_uid, pw->pw_gid) != 0)
|
|
||||||
- perror_msg_and_die("Can't set owner %u:%u on '%s'", (unsigned int)pw->pw_uid, (unsigned int)pw->pw_gid, dir);
|
|
||||||
- if ((sb.st_mode & 07777) != mode && chmod(dir, mode) != 0)
|
|
||||||
- perror_msg_and_die("Can't set mode %o on '%s'", mode, dir);
|
|
||||||
+ struct group *gr = getgrnam(group);
|
|
||||||
+ if (!gr)
|
|
||||||
+ perror_msg_and_die("Can't find group '%s'", group);
|
|
||||||
+
|
|
||||||
+ ensure_writable_dir_uid_gid(dir, mode, pw->pw_uid, gr->gr_gid);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool dir_is_in_dump_location(const char *dir_name)
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
From 5653ddfeb61279df38e80ab18652afa68c964eb6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Wed, 30 Sep 2015 14:14:31 +0200
|
|
||||||
Subject: [PATCH] abrtd: switch owner of the dump location to 'root'
|
|
||||||
|
|
||||||
Additional hardening suggested by Florian Weimer <fweimer@redhat.com>
|
|
||||||
Related to CVE-2015-5287
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/daemon/abrtd.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c
|
|
||||||
index 0352eed..90a7163 100644
|
|
||||||
--- a/src/daemon/abrtd.c
|
|
||||||
+++ b/src/daemon/abrtd.c
|
|
||||||
@@ -195,7 +195,7 @@ static void sanitize_dump_dir_rights(void)
|
|
||||||
* us with thousands of bogus or malicious dumps */
|
|
||||||
/* 07000 bits are setuid, setgit, and sticky, and they must be unset */
|
|
||||||
/* 00777 bits are usual "rwxrwxrwx" access rights */
|
|
||||||
- ensure_writable_dir(g_settings_dump_location, DEFAULT_DUMP_LOCATION_MODE, "abrt");
|
|
||||||
+ ensure_writable_dir_group(g_settings_dump_location, DEFAULT_DUMP_LOCATION_MODE, "root", "abrt");
|
|
||||||
/* temp dir */
|
|
||||||
ensure_writable_dir(VAR_RUN"/abrt", 0755, "root");
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
From b0d5570f1d0f12adf8e00a39c60e7c5da367fd07 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Wed, 3 Feb 2016 14:41:48 +0100
|
|
||||||
Subject: [PATCH] a-a-save-package-data: do not blacklist firefox
|
|
||||||
|
|
||||||
Resolves: rhbz#1304310
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/daemon/abrt-action-save-package-data.conf | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
index 0129399..58f5061 100644
|
|
||||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
@@ -7,7 +7,7 @@ OpenGPGCheck = yes
|
|
||||||
|
|
||||||
# Blacklisted packages
|
|
||||||
#
|
|
||||||
-BlackList = nspluginwrapper, valgrind, strace, mono-core, firefox, bash
|
|
||||||
+BlackList = nspluginwrapper, valgrind, strace, mono-core, bash
|
|
||||||
|
|
||||||
# Process crashes in executables which do not belong to any package?
|
|
||||||
#
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
From 3c4bbdee2059525fafdd6b32a6c85cf2358febe4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Wed, 10 Feb 2016 14:53:44 +0100
|
|
||||||
Subject: [PATCH] ccpp: drop %e from the core_pattern
|
|
||||||
|
|
||||||
The argument is no longer need and it must be placed either at the end
|
|
||||||
of the command or enclosed with '' as it can contain white space.
|
|
||||||
|
|
||||||
Threads can have an arbitrary name:
|
|
||||||
man 3 pthread_setname_np
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
src/hooks/abrt-hook-ccpp.c | 16 ++++++++--------
|
|
||||||
src/hooks/abrt-install-ccpp-hook.in | 12 +-----------
|
|
||||||
2 files changed, 9 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
index 58d9c28..ac60840 100644
|
|
||||||
--- a/src/hooks/abrt-hook-ccpp.c
|
|
||||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
|
||||||
@@ -142,9 +142,9 @@ static struct dump_dir *dd;
|
|
||||||
* %u - uid
|
|
||||||
* %g - gid
|
|
||||||
* %t - UNIX time of dump
|
|
||||||
- * %e - executable filename
|
|
||||||
- * %i - crash thread tid
|
|
||||||
* %P - global pid
|
|
||||||
+ * %I - crash thread tid
|
|
||||||
+ * %e - executable filename (can contain white spaces)
|
|
||||||
* %% - output one "%"
|
|
||||||
*/
|
|
||||||
/* Hook must be installed with exactly the same sequence of %c specifiers.
|
|
||||||
@@ -559,9 +559,9 @@ int main(int argc, char** argv)
|
|
||||||
|
|
||||||
if (argc < 8)
|
|
||||||
{
|
|
||||||
- /* percent specifier: %s %c %p %u %g %t %e %P %i*/
|
|
||||||
- /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]*/
|
|
||||||
- error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME BINARY_NAME GLOBAL_PID [TID]", argv[0]);
|
|
||||||
+ /* percent specifier: %s %c %p %u %g %t %P %T */
|
|
||||||
+ /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8] */
|
|
||||||
+ error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME GLOBAL_PID GLOBAL_TID", argv[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Not needed on 2.6.30.
|
|
||||||
@@ -604,11 +604,11 @@ int main(int argc, char** argv)
|
|
||||||
else
|
|
||||||
free(s);
|
|
||||||
}
|
|
||||||
- const char *global_pid_str = argv[8];
|
|
||||||
- pid_t pid = xatoi_positive(argv[8]);
|
|
||||||
+ const char *global_pid_str = argv[7];
|
|
||||||
+ pid_t pid = xatoi_positive(argv[7]);
|
|
||||||
|
|
||||||
pid_t tid = -1;
|
|
||||||
- const char *tid_str = argv[9];
|
|
||||||
+ const char *tid_str = argv[8];
|
|
||||||
if (tid_str)
|
|
||||||
{
|
|
||||||
tid = xatoi_positive(tid_str);
|
|
||||||
diff --git a/src/hooks/abrt-install-ccpp-hook.in b/src/hooks/abrt-install-ccpp-hook.in
|
|
||||||
index 707c57d..660c209 100755
|
|
||||||
--- a/src/hooks/abrt-install-ccpp-hook.in
|
|
||||||
+++ b/src/hooks/abrt-install-ccpp-hook.in
|
|
||||||
@@ -11,9 +11,7 @@ SAVED_PATTERN_DIR="@VAR_RUN@/abrt"
|
|
||||||
SAVED_PATTERN_FILE="@VAR_RUN@/abrt/saved_core_pattern"
|
|
||||||
HOOK_BIN="@libexecdir@/abrt-hook-ccpp"
|
|
||||||
# Must match percent_specifiers[] order in abrt-hook-ccpp.c:
|
|
||||||
-PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e %P %I"
|
|
||||||
-# Same, but with bogus "executable name" parameter
|
|
||||||
-PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e %P %I"
|
|
||||||
+PATTERN="|$HOOK_BIN %s %c %p %u %g %t %P %I"
|
|
||||||
|
|
||||||
# core_pipe_limit specifies how many dump_helpers can run at the same time
|
|
||||||
# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
|
|
||||||
@@ -39,14 +37,6 @@ start() {
|
|
||||||
cur=`cat "$PATTERN_FILE"`
|
|
||||||
cur_first=`printf "%s" "$cur" | sed 's/ .*//'`
|
|
||||||
|
|
||||||
- # Is there a %e (executable name) in old pattern anywhere?
|
|
||||||
- if test x"${cur#*%e}" = x"${cur}"; then
|
|
||||||
- # No. Can use PATTERN with less risk of overflow
|
|
||||||
- # on expansion (executable names can be LONG).
|
|
||||||
- # Overflow would cause kernel to abort coredump. BAD.
|
|
||||||
- PATTERN="$PATTERN1"
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
$verbose && printf "cur:'%s'\n" "$cur"
|
|
||||||
# Is it already installed?
|
|
||||||
if test x"$cur_first" != x"|$HOOK_BIN"; then # no
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,26 +0,0 @@
|
||||||
From 3f81e0d5fce5b2f30ec19e260cc666f3ae89c034 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Filak <jfilak@redhat.com>
|
|
||||||
Date: Thu, 11 Feb 2016 15:26:27 +0100
|
|
||||||
Subject: [PATCH] translations: add missing new line
|
|
||||||
|
|
||||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
||||||
---
|
|
||||||
po/km.po | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/po/km.po b/po/km.po
|
|
||||||
index 84bb1b1..ab7a684 100644
|
|
||||||
--- a/po/km.po
|
|
||||||
+++ b/po/km.po
|
|
||||||
@@ -137,7 +137,7 @@ msgid ""
|
|
||||||
"\n"
|
|
||||||
"Applet which notifies user when new problems are detected by ABRT\n"
|
|
||||||
msgstr ""
|
|
||||||
-"Applet ដែលបានជូនដំណឹងអ្នកប្រើនៅពេលដែលមានបញ្ហាថ្មីត្រូវបានរកឃើញដោយ ABRT"
|
|
||||||
+"Applet ដែលបានជូនដំណឹងអ្នកប្រើនៅពេលដែលមានបញ្ហាថ្មីត្រូវបានរកឃើញដោយ ABRT\n"
|
|
||||||
|
|
||||||
#: ../src/configuration-gui/abrt-config-widget.c:483
|
|
||||||
msgid ""
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
From a587ec0e3f2adc76445afc732d798e2d7cd33c02 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Tue, 16 Feb 2016 10:53:06 +0100
|
|
||||||
Subject: [PATCH] a-a-save-package-data: blacklist
|
|
||||||
/usr/lib(64)/firefox/plugin-container
|
|
||||||
|
|
||||||
/usr/lib(64)/firefox/plugin-container is a sandbox/launcher for Firefox
|
|
||||||
plug-ins. When it crases Firefox loads it again so we don't want those crashes
|
|
||||||
reported.
|
|
||||||
|
|
||||||
Related to: rhbz#1308840
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/daemon/abrt-action-save-package-data.conf | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
index 58f5061..f3a808f 100644
|
|
||||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
@@ -15,7 +15,7 @@ ProcessUnpackaged = yes
|
|
||||||
|
|
||||||
# Blacklisted executable paths (shell patterns)
|
|
||||||
#
|
|
||||||
-BlackListedPaths = /usr/share/doc/*, */example*, /usr/bin/nspluginviewer
|
|
||||||
+BlackListedPaths = /usr/share/doc/*, */example*, /usr/bin/nspluginviewer, /usr/lib*/firefox/plugin-container
|
|
||||||
|
|
||||||
# interpreters names
|
|
||||||
Interpreters = python2, python2.7, python, python3, python3.3, python3.4, python3.5, perl, perl5.16.2
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
From 894ced59cc43dfda99a393154026181b0bf61784 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Tue, 8 Mar 2016 16:42:31 +0100
|
|
||||||
Subject: [PATCH] a-a-install-debuginfo: make tmpdir variable global
|
|
||||||
|
|
||||||
Function clean_up() has one required parameter tmpdir.
|
|
||||||
Without this commit clean_up() function raises an exception because it was
|
|
||||||
called without the parameter.
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/abrt-action-install-debuginfo.in | 16 ++++++++--------
|
|
||||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
|
|
||||||
index 73ff82f..bb72695 100644
|
|
||||||
--- a/src/plugins/abrt-action-install-debuginfo.in
|
|
||||||
+++ b/src/plugins/abrt-action-install-debuginfo.in
|
|
||||||
@@ -20,7 +20,8 @@ import problem
|
|
||||||
RETURN_OK = 0
|
|
||||||
# serious problem, should be logged somewhere
|
|
||||||
RETURN_FAILURE = 2
|
|
||||||
-
|
|
||||||
+# path to tmp directory has to be global because of clean_up()
|
|
||||||
+TMPDIR = None
|
|
||||||
|
|
||||||
GETTEXT_PROGNAME = "abrt"
|
|
||||||
import locale
|
|
||||||
@@ -43,11 +44,11 @@ def init_gettext():
|
|
||||||
gettext.textdomain(GETTEXT_PROGNAME)
|
|
||||||
|
|
||||||
def sigterm_handler(signum, frame):
|
|
||||||
- clean_up()
|
|
||||||
+ clean_up(TMPDIR)
|
|
||||||
exit(RETURN_OK)
|
|
||||||
|
|
||||||
def sigint_handler(signum, frame):
|
|
||||||
- clean_up()
|
|
||||||
+ clean_up(TMPDIR)
|
|
||||||
print("\n{0}".format(_("Exiting on user command")))
|
|
||||||
sys.stdout.flush()
|
|
||||||
# ??! without "sys.", I am getting segv!
|
|
||||||
@@ -63,7 +64,6 @@ if __name__ == "__main__":
|
|
||||||
fbuild_ids = "build_ids"
|
|
||||||
cachedirs = []
|
|
||||||
size_mb = 4096
|
|
||||||
- tmpdir = None
|
|
||||||
keeprpms = False
|
|
||||||
noninteractive = False
|
|
||||||
b_ids = []
|
|
||||||
@@ -135,7 +135,7 @@ if __name__ == "__main__":
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
elif opt == "--tmpdir":
|
|
||||||
- tmpdir = arg
|
|
||||||
+ TMPDIR = arg
|
|
||||||
elif opt == "--keeprpms":
|
|
||||||
keeprpms = True
|
|
||||||
# --exact takes precendece over --ids
|
|
||||||
@@ -159,11 +159,11 @@ if __name__ == "__main__":
|
|
||||||
|
|
||||||
if not cachedirs:
|
|
||||||
cachedirs = ["/var/cache/abrt-di"]
|
|
||||||
- if not tmpdir:
|
|
||||||
+ if not TMPDIR:
|
|
||||||
# security people prefer temp subdirs in app's private dir, like /var/run/abrt
|
|
||||||
# and we switched to /tmp but Fedora feature tmp-on-tmpfs appeared, hence we must
|
|
||||||
# not use /tmp for potential big data anymore
|
|
||||||
- tmpdir = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
|
|
||||||
+ TMPDIR = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
|
|
||||||
|
|
||||||
|
|
||||||
if missing == None:
|
|
||||||
@@ -235,7 +235,7 @@ if __name__ == "__main__":
|
|
||||||
sys.exit(RETURN_FAILURE)
|
|
||||||
|
|
||||||
# TODO: should we pass keep_rpms=keeprpms to DebugInfoDownload here??
|
|
||||||
- downloader = download_class(cache=cachedirs[0], tmp=tmpdir,
|
|
||||||
+ downloader = download_class(cache=cachedirs[0], tmp=TMPDIR,
|
|
||||||
noninteractive=noninteractive,
|
|
||||||
repo_pattern=repo_pattern)
|
|
||||||
try:
|
|
||||||
--
|
|
||||||
2.5.5
|
|
||||||
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
From 9c58a7bbd6def445ba1d1faaf7a3c2960ba2819e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
Date: Tue, 8 Mar 2016 16:45:36 +0100
|
|
||||||
Subject: [PATCH] a-a-install-debuginfo: fix BrokenPipe error
|
|
||||||
|
|
||||||
While debug info is downloading and stop button is pressed the BrokenPipe
|
|
||||||
error appears.
|
|
||||||
|
|
||||||
If the stop button is pressed, gui wizard sends SIGTERM to all
|
|
||||||
processes with the same group ID so abrt-action-install-debuginfo got SIGTERM
|
|
||||||
as well. It has its own SIGTERM handler which calls clean_up() function and it
|
|
||||||
takes a while before the tool is terminated.
|
|
||||||
abrt-action-install-debuginfo tries to write some messages to the closed socket
|
|
||||||
during the clean_up process and it raises a BrokenPipe exception. We must
|
|
||||||
ensure that no message will be printed after SIGTERM is recieved.
|
|
||||||
|
|
||||||
Related to: #1255259
|
|
||||||
|
|
||||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
||||||
---
|
|
||||||
src/plugins/abrt-action-install-debuginfo.in | 5 ++++-
|
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
|
|
||||||
index bb72695..f9eb596 100644
|
|
||||||
--- a/src/plugins/abrt-action-install-debuginfo.in
|
|
||||||
+++ b/src/plugins/abrt-action-install-debuginfo.in
|
|
||||||
@@ -44,7 +44,7 @@ def init_gettext():
|
|
||||||
gettext.textdomain(GETTEXT_PROGNAME)
|
|
||||||
|
|
||||||
def sigterm_handler(signum, frame):
|
|
||||||
- clean_up(TMPDIR)
|
|
||||||
+ clean_up(TMPDIR, silent=True)
|
|
||||||
exit(RETURN_OK)
|
|
||||||
|
|
||||||
def sigint_handler(signum, frame):
|
|
||||||
@@ -241,6 +241,9 @@ if __name__ == "__main__":
|
|
||||||
try:
|
|
||||||
result = downloader.download(missing, download_exact_files=exact_fls)
|
|
||||||
except Exception as ex:
|
|
||||||
+ if ex.errno == errno.EPIPE:
|
|
||||||
+ clean_up(TMPDIR, silent=True)
|
|
||||||
+ exit(RETURN_FAILURE)
|
|
||||||
error_msg_and_die("Can't download debuginfos: %s", ex)
|
|
||||||
|
|
||||||
if exact_fls:
|
|
||||||
--
|
|
||||||
2.5.5
|
|
||||||
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
From 1ef034096efe367af85f568bc982af969124003b Mon Sep 17 00:00:00 2001
|
|
||||||
From: rpm-build <rpm-build>
|
|
||||||
Date: Mon, 10 Feb 2014 09:39:07 +0100
|
|
||||||
Subject: [PATCH] disable OpenGPGCheck in Fedora Rawhide
|
|
||||||
|
|
||||||
Packages in Fedora Rawhide are not signed.
|
|
||||||
---
|
|
||||||
src/daemon/abrt-action-save-package-data.conf | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
index 3d35bb6..e3f724a 100644
|
|
||||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
|
||||||
@@ -3,7 +3,7 @@
|
|
||||||
# the list of public keys used to check the signature is
|
|
||||||
# in the file gpg_keys
|
|
||||||
#
|
|
||||||
-OpenGPGCheck = yes
|
|
||||||
+OpenGPGCheck = no
|
|
||||||
|
|
||||||
# Blacklisted packages
|
|
||||||
#
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
15
gating.yaml
Normal file
15
gating.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- fedora-*
|
||||||
|
decision_context: bodhi_update_push_testing
|
||||||
|
subject_type: koji_build
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||||
|
|
||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- fedora-*
|
||||||
|
decision_context: bodhi_update_push_stable
|
||||||
|
subject_type: koji_build
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
936fa2b51d58d5c00729b8512ffa2a68 abrt-2.6.1.tar.gz
|
SHA512 (abrt-2.17.8.tar.gz) = 90b74229412e0186bfa109ee940a60c9f3c0f7ce8c1216acad6f05619a1bb591e7f0bae87363143a05034312c9f14fe5ace341b84f680780ceb93a1e624705b3
|
||||||
|
|
|
||||||
10
tests/smoke.fmf
Normal file
10
tests/smoke.fmf
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
summary: Basic smoke test for abrt
|
||||||
|
prepare:
|
||||||
|
how: install
|
||||||
|
# Do not attempt to install conflicting subpackages.
|
||||||
|
exclude:
|
||||||
|
- abrt-atomic
|
||||||
|
- abrt-java-connector-container
|
||||||
|
- python3-abrt-container-addon
|
||||||
|
execute:
|
||||||
|
script: abrt-action-notify --help
|
||||||
Loading…
Add table
Add a link
Reference in a new issue