diff --git a/0003-applet-application-Fix-crash-when-processing-deferre.patch b/0003-applet-application-Fix-crash-when-processing-deferre.patch new file mode 100644 index 0000000..1cb1394 --- /dev/null +++ b/0003-applet-application-Fix-crash-when-processing-deferre.patch @@ -0,0 +1,59 @@ +From b28fcc053db224c11f1f88d2885eba88d60a7322 Mon Sep 17 00:00:00 2001 +From: Ernestas Kulik +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 + diff --git a/abrt.spec b/abrt.spec index a3236fa..14c4988 100644 --- a/abrt.spec +++ b/abrt.spec @@ -49,13 +49,14 @@ Summary: Automatic bug detection and reporting tool Name: abrt Version: 2.14.2 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ URL: https://abrt.readthedocs.org/ Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz Patch0: 0001-applet-Pass-instance-pointer-to-signal-handler.patch Patch1: 0002-applet-Chain-up-in-dispose.patch +Patch2: 0003-applet-application-Fix-crash-when-processing-deferre.patch BuildRequires: git-core BuildRequires: %{dbus_devel} @@ -1018,6 +1019,9 @@ killall abrt-dbus >/dev/null 2>&1 || : %config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh %changelog +* Tue Jul 28 2020 - Ernestas Kulik - 2.14.2-5 +- Add patch for https://bugzilla.redhat.com/show_bug.cgi?id=1860903 + * Mon Jul 27 2020 Fedora Release Engineering - 2.14.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild