This commit is contained in:
Matěj Grabovský 2020-09-24 10:07:28 +02:00
parent 00422605f4
commit 1ab9d3859f
5 changed files with 46 additions and 114 deletions

View File

@ -1,28 +0,0 @@
From 5618985d3d7f830ebba0ef78e2ee6d3d6f9f6c55 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Fri, 15 May 2020 15:49:59 +0200
Subject: [PATCH] applet: Pass instance pointer to signal handler
Some fallout from 802a40a2f7c971b6533162e70b860e01ae3b5a27.
https://bugzilla.redhat.com/show_bug.cgi?id=1836190
---
src/applet/abrt-applet-application.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/applet/abrt-applet-application.c b/src/applet/abrt-applet-application.c
index d982c9f9..8ea653bb 100644
--- a/src/applet/abrt-applet-application.c
+++ b/src/applet/abrt-applet-application.c
@@ -177,7 +177,7 @@ abrt_applet_application_init (AbrtAppletApplication *self)
g_signal_connect (network_monitor, "notify::connectivity",
G_CALLBACK (on_connectivity_changed), self);
g_signal_connect (network_monitor, "notify::network-available",
- G_CALLBACK (on_connectivity_changed), NULL);
+ G_CALLBACK (on_connectivity_changed), self);
self->deferred_problems = g_ptr_array_new_with_free_func (g_object_unref);
}
--
2.26.2

View File

@ -0,0 +1,40 @@
From 1f2963b0611d4023957abe3c7391eab86256ba82 Mon Sep 17 00:00:00 2001
From: Michal Fabik <mfabik@redhat.com>
Date: Wed, 23 Sep 2020 16:55:25 +0200
Subject: [PATCH] hooklib: Don't g_autofree backtrace
The result of abrt_get_backtrace was being freed every time, even when
no error occured.
Resolves:
https://github.com/abrt/abrt/issues/1528
https://bugzilla.redhat.com/show_bug.cgi?id=1881745
Signed-off-by: Michal Fabik <mfabik@redhat.com>
---
src/lib/hooklib.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c
index dceaeb16..56b77bc3 100644
--- a/src/lib/hooklib.c
+++ b/src/lib/hooklib.c
@@ -348,7 +348,7 @@ char *abrt_get_backtrace(struct dump_dir *dd, unsigned timeout_sec, const char *
unsigned bt_depth = 1024;
const char *thread_apply_all = "thread apply all -ascending";
const char *full = "full ";
- g_autofree char *bt = NULL;
+ char *bt = NULL;
while (1)
{
args[bt_cmd_index] = g_strdup_printf("%s backtrace %s%u", thread_apply_all, full, bt_depth);
@@ -367,6 +367,7 @@ char *abrt_get_backtrace(struct dump_dir *dd, unsigned timeout_sec, const char *
/* (NB: in fact, current impl. of exec_vp() never returns NULL) */
log_warning("Failed to generate backtrace, reducing depth to %u",
bt_depth);
+ free(bt);
/* Replace -ex disassemble (which disasms entire function $pc points to)
* to a version which analyzes limited, small patch of code around $pc.
--
2.26.2

View File

@ -1,26 +0,0 @@
From b08e7cbd26704b0a5400fdfab1f3f2e3922b102f Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Fri, 15 May 2020 15:50:50 +0200
Subject: [PATCH] applet: Chain up in dispose()
Also something missed in 802a40a2f7c971b6533162e70b860e01ae3b5a27.
---
src/applet/abrt-applet-application.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/applet/abrt-applet-application.c b/src/applet/abrt-applet-application.c
index 8ea653bb..52ed5529 100644
--- a/src/applet/abrt-applet-application.c
+++ b/src/applet/abrt-applet-application.c
@@ -985,6 +985,8 @@ abrt_applet_application_dispose (GObject *object)
self = ABRT_APPLET_APPLICATION (object);
g_clear_pointer (&self->deferred_problems, g_ptr_array_unref);
+
+ G_OBJECT_CLASS (abrt_applet_application_parent_class)->dispose (object);
}
static void
--
2.26.2

View File

@ -1,59 +0,0 @@
From b28fcc053db224c11f1f88d2885eba88d60a7322 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Tue, 28 Jul 2020 15:39:43 +0200
Subject: [PATCH] applet: application: Fix crash when processing deferred
Currently, when processing the deferred problems, if reporting fails,
the problem is re-added to the queue, but the object is not
re-referenced, leading to invalid reads later on.
---
src/applet/abrt-applet-application.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/applet/abrt-applet-application.c b/src/applet/abrt-applet-application.c
index 28e55135..4716524b 100644
--- a/src/applet/abrt-applet-application.c
+++ b/src/applet/abrt-applet-application.c
@@ -771,11 +771,9 @@ handle_event_output_cb (GIOChannel *gio,
gpointer data)
{
EventProcessingState *state;
- AbrtAppletProblemInfo *problem_info;
int status;
state = data;
- problem_info = state->problem_info;
/* Read streamed data and split lines */
for (;;)
@@ -836,21 +834,23 @@ handle_event_output_cb (GIOChannel *gio,
if (WIFEXITED (status) && WEXITSTATUS (status) == EXIT_STOP_EVENT_RUN)
{
- abrt_applet_problem_info_set_known (problem_info, true);
+ abrt_applet_problem_info_set_known (state->problem_info, true);
status = 0;
}
if (status == 0)
{
- abrt_applet_problem_info_set_reported (problem_info, true);
+ abrt_applet_problem_info_set_reported (state->problem_info, true);
log_debug ("fast report finished successfully");
- abrt_applet_application_send_problem_notification (state->application, problem_info);
+ abrt_applet_application_send_problem_notification (state->application,
+ state->problem_info);
}
else
{
log_debug ("fast report failed, deferring");
- g_ptr_array_add (state->application->deferred_problems, problem_info);
+ g_ptr_array_add (state->application->deferred_problems,
+ g_steal_pointer (&state->problem_info));
}
event_processing_state_free (state);
--
2.26.2

View File

@ -49,11 +49,13 @@
Summary: Automatic bug detection and reporting tool Summary: Automatic bug detection and reporting tool
Name: abrt Name: abrt
Version: 2.14.4 Version: 2.14.4
Release: 1%{?dist} Release: 2%{?dist}
License: GPLv2+ License: GPLv2+
URL: https://abrt.readthedocs.org/ URL: https://abrt.readthedocs.org/
Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
Patch0: 0001-hooklib-Don-t-g_autofree-backtrace.patch
BuildRequires: git-core BuildRequires: git-core
BuildRequires: %{dbus_devel} BuildRequires: %{dbus_devel}
BuildRequires: hostname BuildRequires: hostname
@ -1008,6 +1010,9 @@ killall abrt-dbus >/dev/null 2>&1 || :
%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh %config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
%changelog %changelog
* Thu Sep 24 2020 Matěj Grabovský <mgrabovs@redhat.com> - 2.14.4-2
- Add fix for https://bugzilla.redhat.com/show_bug.cgi?id=1881745
* Mon Aug 17 2020 Michal Fabik <mfabik@redhat.com> - 2.14.4-1 * Mon Aug 17 2020 Michal Fabik <mfabik@redhat.com> - 2.14.4-1
- Fix broken release 2.14.3 - Fix broken release 2.14.3
- oops-utils: Respect the 'world-readable' flag - oops-utils: Respect the 'world-readable' flag