#7
Looks like the crash is happening in this part of liblightdm-gobject:
> xkl_engine = xkl_engine_get_instance (display); > xkl_config = xkl_config_rec_new (); > if (!xkl_config_rec_get_from_server (xkl_config, xkl_engine)) > g_warning ("Failed to get Xkl configuration from server");
xkl_engine_get_instance() is returning NULL, and xkl_config_rec_get_from_server() is dereferencing that NULL via its internal xkl_engine_priv() macro:
> #define xkl_engine_priv(engine,member) (engine)->priv->member
> xkl_config_rec_get_full_from_server(char **rules_file_out, XklConfigRec * data, XklEngine * engine) > { > gboolean rv = xkl_config_rec_get_from_root_window_property(data, > xkl_engine_priv > (engine, > base_config_atom),
xkl should probably sanitize its inputs, but lightdm should also be careful to not pass a NULL engine back to xkl.
#7
Looks like the crash is happening in this part of liblightdm-gobject:
> xkl_engine = xkl_engine_ get_instance (display); rec_get_ from_server (xkl_config, xkl_engine))
> xkl_config = xkl_config_rec_new ();
> if (!xkl_config_
> g_warning ("Failed to get Xkl configuration from server");
xkl_engine_ get_instance( ) is returning NULL, and xkl_config_ rec_get_ from_server( ) is dereferencing that NULL via its internal xkl_engine_priv() macro:
> #define xkl_engine_ priv(engine, member) (engine) ->priv- >member
> xkl_config_ rec_get_ full_from_ server( char **rules_file_out, XklConfigRec * data, XklEngine * engine) rec_get_ from_root_ window_ property( data,
> {
> gboolean rv = xkl_config_
> xkl_engine_priv
> (engine,
> base_config_atom),
xkl should probably sanitize its inputs, but lightdm should also be careful to not pass a NULL engine back to xkl.