Matej Habrnal 0b651c
From a1f14b2e4585981a4cf6408509412bcfacbd9ea8 Mon Sep 17 00:00:00 2001
Matej Habrnal 0b651c
From: Matej Habrnal <mhabrnal@redhat.com>
Matej Habrnal 0b651c
Date: Thu, 18 Sep 2014 15:02:01 +0200
Matej Habrnal 0b651c
Subject: [PATCH] dbus: fixed abrt-dbus memory leaks
Matej Habrnal 0b651c
Matej Habrnal 0b651c
Fixed memory leaks in abrt-dbus (method FindProblemByElementInTimeRange).
Matej Habrnal 0b651c
This method leaks memory if fuzzing on org.freedesktop.problems interface.
Matej Habrnal 0b651c
Matej Habrnal 0b651c
Related to rhbz#1015473
Matej Habrnal 0b651c
Matej Habrnal 0b651c
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
Matej Habrnal 0b651c
---
Matej Habrnal 0b651c
 src/dbus/abrt-dbus.c | 18 +++++++++++-------
Matej Habrnal 0b651c
 1 file changed, 11 insertions(+), 7 deletions(-)
Matej Habrnal 0b651c
Matej Habrnal 0b651c
diff --git a/src/dbus/abrt-dbus.c b/src/dbus/abrt-dbus.c
Matej Habrnal 0b651c
index 0350dee..308a9af 100644
Matej Habrnal 0b651c
--- a/src/dbus/abrt-dbus.c
Matej Habrnal 0b651c
+++ b/src/dbus/abrt-dbus.c
Matej Habrnal 0b651c
@@ -685,13 +685,17 @@ static void handle_method_call(GDBusConnection *connection,
Matej Habrnal 0b651c
 
Matej Habrnal 0b651c
     if (g_strcmp0(method_name, "FindProblemByElementInTimeRange") == 0)
Matej Habrnal 0b651c
     {
Matej Habrnal 0b651c
-        const char *element;
Matej Habrnal 0b651c
-        const char *value;
Matej Habrnal 0b651c
-        long timestamp_from;
Matej Habrnal 0b651c
-        long timestamp_to;
Matej Habrnal 0b651c
-        bool all;
Matej Habrnal 0b651c
-
Matej Habrnal 0b651c
-        g_variant_get(parameters, "(ssxxb)", &element, &value, &timestamp_from, &timestamp_to, &all;;
Matej Habrnal 0b651c
+        const gchar *element;
Matej Habrnal 0b651c
+        const gchar *value;
Matej Habrnal 0b651c
+        glong timestamp_from;
Matej Habrnal 0b651c
+        glong timestamp_to;
Matej Habrnal 0b651c
+        gboolean all;
Matej Habrnal 0b651c
+
Matej Habrnal 0b651c
+        g_variant_get_child(parameters, 0, "&s", &element);
Matej Habrnal 0b651c
+        g_variant_get_child(parameters, 1, "&s", &value);
Matej Habrnal 0b651c
+        g_variant_get_child(parameters, 2, "x", &timestamp_from);
Matej Habrnal 0b651c
+        g_variant_get_child(parameters, 3, "x", &timestamp_to);
Matej Habrnal 0b651c
+        g_variant_get_child(parameters, 4, "b", &all;;
Matej Habrnal 0b651c
 
Matej Habrnal 0b651c
         if (all && polkit_check_authorization_dname(caller, "org.freedesktop.problems.getall") == PolkitYes)
Matej Habrnal 0b651c
             caller_uid = 0;
Matej Habrnal 0b651c
-- 
Matej Habrnal 0b651c
1.9.3
Matej Habrnal 0b651c