summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/monitor.c5
-rw-r--r--client/services.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/client/monitor.c b/client/monitor.c
index 3c3ca5cd..d2f88467 100644
--- a/client/monitor.c
+++ b/client/monitor.c
@@ -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;
diff --git a/client/services.c b/client/services.c
index a7dfe36e..e4f177cd 100644
--- a/client/services.c
+++ b/client/services.c
@@ -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);