Blob Blame History Raw
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