From 9f6523b9c6b96554485cab6cad9ed75f9cfad0f6 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 13 Mar 2022 23:59:13 +0100 Subject: impl_deregister_keystroke_listener: Fix kd structure leak on iteration error --- registryd/deviceeventcontroller.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'registryd/deviceeventcontroller.c') diff --git a/registryd/deviceeventcontroller.c b/registryd/deviceeventcontroller.c index 8a321adc..e277412f 100644 --- a/registryd/deviceeventcontroller.c +++ b/registryd/deviceeventcontroller.c @@ -1388,6 +1388,7 @@ impl_register_keystroke_listener (DBusConnection *bus, Accessibility_KeyDefinition *kd = (Accessibility_KeyDefinition *)g_malloc(sizeof(Accessibility_KeyDefinition)); if (!spi_dbus_message_iter_get_struct(&iter_array, DBUS_TYPE_INT32, &kd->keycode, DBUS_TYPE_INT32, &kd->keysym, DBUS_TYPE_STRING, &keystring, DBUS_TYPE_INVALID)) { + g_free(kd); break; } kd->keystring = g_strdup (keystring); @@ -1598,6 +1599,7 @@ impl_deregister_keystroke_listener (DBusConnection *bus, if (!spi_dbus_message_iter_get_struct(&iter_array, DBUS_TYPE_INT32, &kd->keycode, DBUS_TYPE_INT32, &kd->keysym, DBUS_TYPE_STRING, &keystring, DBUS_TYPE_INVALID)) { + g_free(kd); break; } kd->keystring = g_strdup (keystring); -- cgit v1.2.1