{
keylist_free(key_listener->keys);
if (key_listener->mode) g_free(key_listener->mode);
+ g_free (key_listener->listener.bus_name);
+ g_free (key_listener->listener.path);
g_free (key_listener);
}
if (!dbus_connection_read_write_dispatch (bus, timeout))
return NULL;
}
+ dbus_pending_call_unref (pending);
return reply;
}
static gboolean
dbus_bool_t ret;
DBusMessage *reply = NULL;
char *keystring;
+ char *sig;
dbus_message_iter_init(message, &iter);
// TODO: verify type signature
dbus_message_iter_next(&iter);
dbus_message_iter_get_basic(&iter, &mask);
dbus_message_iter_next(&iter);
- if (!strcmp (dbus_message_iter_get_signature (&iter), "u"))
+ sig = dbus_message_iter_get_signature (&iter);
+ if (sig && !strcmp (sig, "u"))
dbus_message_iter_get_basic(&iter, &type);
else
{
}
dbus_message_iter_next (&iter_array);
}
+ dbus_free (sig);
dbus_message_iter_next(&iter);
mode = (Accessibility_EventListenerMode *)g_malloc(sizeof(Accessibility_EventListenerMode));
if (mode)
dbus_message_get_sender(message), path, (unsigned long) mask);
#endif
dec_listener = spi_dec_key_listener_new (dbus_message_get_sender(message), path, keys, mask, type, mode);
+ g_free (mode);
ret = spi_controller_register_device_listener (
controller, (DEControllerListener *) dec_listener);
reply = dbus_message_new_method_return (message);