From a96c7836451860f93f88bd739c132645dd581af1 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Wed, 8 May 2019 22:06:46 +0300 Subject: [PATCH] dbus: Fix some memory leaks on error paths wpa_dbus_dict_close_write() was not called if fill_dict_with_properties() fails and that could result in leaking memory. Fix this in two cases. There might be other missing calls to jouni@codeaurora.org() on error paths, but those will need to be handled separately with more complex changes. Signed-off-by: Jouni Malinen --- wpa_supplicant/dbus/dbus_new_helpers.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wpa_supplicant/dbus/dbus_new_helpers.c b/wpa_supplicant/dbus/dbus_new_helpers.c index 0115e32a1..d80e2d402 100644 --- a/wpa_supplicant/dbus/dbus_new_helpers.c +++ b/wpa_supplicant/dbus/dbus_new_helpers.c @@ -98,6 +98,7 @@ static DBusMessage * get_all_properties(DBusMessage *message, char *interface, dbus_error_init(&error); if (!fill_dict_with_properties(&dict_iter, obj_dsc->properties, interface, obj_dsc->user_data, &error)) { + wpa_dbus_dict_close_write(&iter, &dict_iter); dbus_message_unref(reply); reply = wpas_dbus_reply_new_from_error( message, &error, DBUS_ERROR_INVALID_ARGS, @@ -930,6 +931,7 @@ dbus_bool_t wpa_dbus_get_object_properties(struct wpas_dbus_priv *iface, dbus_error_is_set(&error) ? error.name : "none", dbus_error_is_set(&error) ? error.message : "none"); dbus_error_free(&error); + wpa_dbus_dict_close_write(iter, &dict_iter); return FALSE; }