[gnome-builder] gdb: don't leak translated path



commit 42de933799df6b9cfeed6f2429a154f4e11d58ff
Author: Christian Hergert <chergert redhat com>
Date:   Fri Sep 1 23:07:32 2017 -0700

    gdb: don't leak translated path
    
    Unlikely, but possible.
    
    Fixes CID 175141, 175126, and 175136.

 plugins/gdb/gbp-gdb-debugger.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)
---
diff --git a/plugins/gdb/gbp-gdb-debugger.c b/plugins/gdb/gbp-gdb-debugger.c
index 847b9fd..79fdb95 100644
--- a/plugins/gdb/gbp-gdb-debugger.c
+++ b/plugins/gdb/gbp-gdb-debugger.c
@@ -438,7 +438,10 @@ gbp_gdb_debugger_handle_breakpoint (GbpGdbDebugger              *self,
           else if (g_strcmp0 (iter->variable, "func") == 0)
             func = iter->variant.cstring;
           else if (g_strcmp0 (iter->variable, "file") == 0)
-            file = gbp_gdb_debugger_translate_path (self, iter->variant.cstring);
+            {
+              g_free (file);
+              file = gbp_gdb_debugger_translate_path (self, iter->variant.cstring);
+            }
           else if (g_strcmp0 (iter->variable, "fullname") == 0)
             fullname = iter->variant.cstring;
           else if (g_strcmp0 (iter->variable, "line") == 0)
@@ -557,7 +560,10 @@ gbp_gdb_debugger_handle_stopped (GbpGdbDebugger                 *self,
                       else if (g_strcmp0 (subiter->variable, "address") == 0)
                         address = subiter->variant.cstring;
                       else if (g_strcmp0 (subiter->variable, "file") == 0)
-                        file = gbp_gdb_debugger_translate_path (self, subiter->variant.cstring);
+                        {
+                          g_free (file);
+                          file = gbp_gdb_debugger_translate_path (self, subiter->variant.cstring);
+                        }
                       else if (g_strcmp0 (subiter->variable, "line") == 0)
                         line = g_ascii_strtoll (subiter->variant.cstring, NULL, 10);
                     }
@@ -1497,7 +1503,10 @@ gbp_gdb_debugger_list_frames_cb (GObject      *object,
                           else if (g_strcmp0 (iter->variable, "func") == 0)
                             func = iter->variant.cstring;
                           else if (g_strcmp0 (iter->variable, "file") == 0)
-                            file = gbp_gdb_debugger_translate_path (self, iter->variant.cstring);
+                            {
+                              g_free (file);
+                              file = gbp_gdb_debugger_translate_path (self, iter->variant.cstring);
+                            }
                           else if (g_strcmp0 (iter->variable, "fullname") == 0)
                             fullname = iter->variant.cstring;
                           else if (g_strcmp0 (iter->variable, "line") == 0)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]