This commit is contained in:
Ernestas Kulik 2020-07-28 16:21:15 +02:00
parent d8a4ccc6c2
commit 935456c7d9
2 changed files with 64 additions and 1 deletions

View File

@ -0,0 +1,59 @@
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,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 <ekulik@redhat.com> - 2.14.2-5
- Add patch for https://bugzilla.redhat.com/show_bug.cgi?id=1860903
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild