if (!strcmp (category, "ScreenReader"))
{
e.source = accessible;
+ if (e.source == NULL)
+ {
+ g_warning ("Got no valid source accessible for signal %s from interface %s\n", member, category);
+ g_free (converted_type);
+ g_free (name);
+ g_free (detail);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
}
else
{
dbind_method_call_reentrant (data.bus, MUTTER_REMOTE_DESKTOP_BUS_NAME, MUTTER_REMOTE_DESKTOP_OBJECT_PATH, MUTTER_REMOTE_DESKTOP_INTERFACE, "CreateSession", &d_error, "=>o", &session_path);
data.rd_session_path = g_strdup (session_path);
- if (!data.rd_session_path[0])
+ if (!data.rd_session_path || !data.rd_session_path[0])
return FALSE;
dbind_method_call_reentrant (data.bus, MUTTER_REMOTE_DESKTOP_BUS_NAME, data.rd_session_path, MUTTER_REMOTE_DESKTOP_SESSION_INTERFACE, "Start", &d_error, "");
name = atspi_accessible_get_name (accessible, NULL);
data.window_id = get_window_id (name);
data.window_id_is_explicit = TRUE;
+ g_free(name);
}
else