client: Fix various memory leaks in monitor and services parts
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Wed, 17 Oct 2012 07:46:14 +0000 (10:46 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 17 Oct 2012 09:19:29 +0000 (12:19 +0300)
client/monitor.c
client/services.c

index 3c3ca5c..d2f8846 100644 (file)
@@ -164,6 +164,9 @@ DBusHandlerResult service_property_changed(DBusConnection *connection,
        if (dbus_message_is_signal(message, "net.connman.Service",
                                            "PropertyChanged")) {
                service_message = get_message(connection, "GetServices");
+               if (service_message == NULL)
+                       return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
                service.name = get_service_name(service_message,
                                (char *) dbus_message_get_path(message));
                printf("\n");
@@ -172,6 +175,8 @@ DBusHandlerResult service_property_changed(DBusConnection *connection,
                                dbus_message_get_interface(message),
                                service.name);
                extract_signal_args(message);
+
+               dbus_message_unref(service_message);
        }
 
        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
index a7dfe36..e4f177c 100644 (file)
@@ -408,8 +408,10 @@ int set_proxy_manual(DBusConnection *connection, DBusMessage *message,
                                                        "net.connman.Service",
                                                        "SetProperty");
 
-       if (message_send == NULL)
+       if (message_send == NULL) {
+               g_free(path);
                return -ENOMEM;
+       }
 
        dbus_message_iter_init_append(message_send, &iter);
        dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &property);
@@ -443,6 +445,8 @@ int set_proxy_manual(DBusConnection *connection, DBusMessage *message,
        dbus_connection_flush(connection);
        dbus_message_unref(message_send);
 
+       g_free(path);
+
        return 0;
 }
 
@@ -465,8 +469,10 @@ int set_service_property(DBusConnection *connection, DBusMessage *message,
                                                        "net.connman.Service",
                                                        "SetProperty");
 
-       if (message_send == NULL)
+       if (message_send == NULL) {
+               g_free(path);
                return -ENOMEM;
+       }
 
        dbus_message_iter_init_append(message_send, &iter);