xfce_shortcuts_provider_property_changed has uninitialized custom_base_property
While looking for the cause of g_str_has_prefix: assertion 'prefix != NULL' failed
errors from xfwm4 and xfsettingsd, it turned out xfce_shortcuts_provider_property_changed
calls g_str_has_prefix
with empty prefix
.
This is the backtrace from a test user with $HOME
in tmpfs
:
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007fd9455cb741 in __GI_abort () at abort.c:79
#2 0x00007fd94686bfe0 in g_str_has_no_prefix () at gstrfuncs.c:2874
#3 g_str_has_prefix (str=str@entry=0x56428bfce8c0 "/providers", prefix=<optimized out>) at gstrfuncs.c:2881
#4 0x00007fd948983d29 in xfce_shortcuts_provider_property_changed (channel=<optimized out>, property=0x56428bfce8c0 "/providers", value=0x56428bfce760,
provider=0x56428c0d1120) at xfce-shortcuts-provider.c:290
#5 0x00007fd946b248cd in g_closure_invoke (closure=0x56428c087ea0, return_value=0x0, n_param_values=3, param_values=0x7ffd5dcf3e10,
invocation_hint=0x7ffd5dcf3d90) at gclosure.c:804
#6 0x00007fd946b37a7e in signal_emit_unlocked_R (node=node@entry=0x56428c0b7910, detail=detail@entry=1193, instance=instance@entry=0x56428c0d1140,
emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd5dcf3e10) at gsignal.c:3635
#7 0x00007fd946b4031c in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>,
var_args=var_args@entry=0x7ffd5dcf4010) at gsignal.c:3391
#8 0x00007fd946b40c8f in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3447
#9 0x00007fd946b248cd in g_closure_invoke (closure=0x56428c0b9ce0, return_value=0x0, n_param_values=4, param_values=0x7ffd5dcf42b0,
invocation_hint=0x7ffd5dcf4230) at gclosure.c:804
#10 0x00007fd946b37a7e in signal_emit_unlocked_R (node=node@entry=0x7fd930008f80, detail=detail@entry=0, instance=instance@entry=0x56428bed0c00,
emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd5dcf42b0) at gsignal.c:3635
#11 0x00007fd946b4031c in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>,
var_args=var_args@entry=0x7ffd5dcf44c0) at gsignal.c:3391
#12 0x00007fd946b40c8f in g_signal_emit (instance=instance@entry=0x56428bed0c00, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3447
#13 0x00007fd946d723a6 in xfconf_cache_set (cache=0x56428bed0c00, property=property@entry=0x7fd948986b9d "/providers", value=value@entry=0x7ffd5dcf4670,
error=error@entry=0x0) at xfconf-cache.c:920
#14 0x00007fd946d72f72 in xfconf_channel_set_internal (channel=channel@entry=0x56428c0d1140, property=property@entry=0x7fd948986b9d "/providers",
value=value@entry=0x7ffd5dcf4670) at xfconf-channel.c:421
#15 0x00007fd946d74c01 in IA__xfconf_channel_set_arrayv (channel=channel@entry=0x56428c0d1140, property=property@entry=0x7fd948986b9d "/providers",
values=values@entry=0x56428bfadc20) at xfconf-channel.c:1677
#16 0x00007fd946d74d31 in IA__xfconf_channel_set_string_list (channel=0x56428c0d1140, property=property@entry=0x7fd948986b9d "/providers",
values=values@entry=0x56428c01f730) at xfconf-channel.c:1047
#17 0x00007fd948984798 in xfce_shortcuts_provider_register (provider=0x56428c0d1120) at xfce-shortcuts-provider.c:266
#18 xfce_shortcuts_provider_constructed (object=0x56428c0d1120) at xfce-shortcuts-provider.c:163
#19 0x00007fd946b2a3d0 in g_object_new_internal (class=class@entry=0x56428c0b5270, params=params@entry=0x7ffd5dcf48b0, n_params=n_params@entry=1)
at gobject.c:1837
#20 0x00007fd946b2c13e in g_object_new_valist (object_type=<optimized out>, first_property_name=first_property_name@entry=0x7fd948986ae9 "name",
var_args=var_args@entry=0x7ffd5dcf4a00) at gobject.c:2120
#21 0x00007fd946b2c4b9 in g_object_new (object_type=<optimized out>, first_property_name=first_property_name@entry=0x7fd948986ae9 "name") at gobject.c:1640
#22 0x00007fd948984230 in xfce_shortcuts_provider_new (name=name@entry=0x564289f2edcd "xfwm4") at xfce-shortcuts-provider.c:318
#23 0x0000564289f241f7 in initSettings (screen_info=0x56428c090400) at settings.c:1076
#24 0x0000564289ef299b in initialize (replace_wm=0) at main.c:592
#25 main (argc=<optimized out>, argv=<optimized out>) at main.c:752
same with xfsettingsd
:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007f1dd0aaf741 in __GI_abort () at abort.c:79
#2 0x00007f1dd10befe0 in g_str_has_no_prefix () at gstrfuncs.c:2874
#3 g_str_has_prefix (str=str@entry=0x56282ddf58d0 "/providers", prefix=<optimized out>) at gstrfuncs.c:2881
#4 0x00007f1dd3ee4d29 in xfce_shortcuts_provider_property_changed (channel=<optimized out>, property=0x56282ddf58d0 "/providers", value=0x56282ddf5930,
provider=0x56282dddb460) at xfce-shortcuts-provider.c:290
#5 0x00007f1dd13778cd in g_closure_invoke (closure=0x56282ddeff30, return_value=0x0, n_param_values=3, param_values=0x7ffd39489020,
invocation_hint=0x7ffd39488fa0) at gclosure.c:804
#6 0x00007f1dd138aa7e in signal_emit_unlocked_R (node=node@entry=0x56282dddcc70, detail=detail@entry=809, instance=instance@entry=0x56282dddb5c0,
emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd39489020) at gsignal.c:3635
#7 0x00007f1dd139331c in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>,
var_args=var_args@entry=0x7ffd39489220) at gsignal.c:3391
#8 0x00007f1dd1393c8f in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3447
#9 0x00007f1dd13778cd in g_closure_invoke (closure=0x56282ddf4840, return_value=0x0, n_param_values=4, param_values=0x7ffd394894c0,
invocation_hint=0x7ffd39489440) at gclosure.c:804
#10 0x00007f1dd138aa7e in signal_emit_unlocked_R (node=node@entry=0x56282dddcc00, detail=detail@entry=0, instance=instance@entry=0x56282ddc8f20,
emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd394894c0) at gsignal.c:3635
#11 0x00007f1dd139331c in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>,
var_args=var_args@entry=0x7ffd394896d0) at gsignal.c:3391
#12 0x00007f1dd1393c8f in g_signal_emit (instance=instance@entry=0x56282ddc8f20, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3447
#13 0x00007f1dd24113a6 in xfconf_cache_set (cache=0x56282ddc8f20, property=property@entry=0x7f1dd3ee7b9d "/providers", value=value@entry=0x7ffd39489880,
error=error@entry=0x0) at xfconf-cache.c:920
#14 0x00007f1dd2411f72 in xfconf_channel_set_internal (channel=channel@entry=0x56282dddb5c0, property=property@entry=0x7f1dd3ee7b9d "/providers",
value=value@entry=0x7ffd39489880) at xfconf-channel.c:421
#15 0x00007f1dd2413c01 in IA__xfconf_channel_set_arrayv (channel=channel@entry=0x56282dddb5c0, property=property@entry=0x7f1dd3ee7b9d "/providers",
values=values@entry=0x7f1db8001c20) at xfconf-channel.c:1677
#16 0x00007f1dd2413d31 in IA__xfconf_channel_set_string_list (channel=0x56282dddb5c0, property=property@entry=0x7f1dd3ee7b9d "/providers",
values=values@entry=0x56282ddf48b0) at xfconf-channel.c:1047
#17 0x00007f1dd3ee5798 in xfce_shortcuts_provider_register (provider=0x56282dddb460) at xfce-shortcuts-provider.c:266
#18 xfce_shortcuts_provider_constructed (object=0x56282dddb460) at xfce-shortcuts-provider.c:163
#19 0x00007f1dd137d3d0 in g_object_new_internal (class=class@entry=0x56282ddee1b0, params=params@entry=0x7ffd39489ac0, n_params=n_params@entry=1)
at gobject.c:1837
#20 0x00007f1dd137f13e in g_object_new_valist (object_type=<optimized out>, first_property_name=<optimized out>, var_args=var_args@entry=0x7ffd39489c10)
at gobject.c:2120
#21 0x00007f1dd137f4b9 in g_object_new (object_type=<optimized out>, first_property_name=<optimized out>) at gobject.c:1640
#22 0x000056282bd8138d in ?? ()
#23 0x00007f1dd139c54d in g_type_create_instance (type=94730568229168) at gtype.c:1866
#24 0x00007f1dd137d218 in g_object_new_internal (class=class@entry=0x56282dde7290, params=params@entry=0x0, n_params=n_params@entry=0) at gobject.c:1797
#25 0x00007f1dd137ea1d in g_object_new_with_properties (object_type=94730568229168, n_properties=0, names=names@entry=0x0, values=values@entry=0x0)
at gobject.c:1965
#26 0x00007f1dd137f4e1 in g_object_new (object_type=<optimized out>, first_property_name=<optimized out>) at gobject.c:1637
#27 0x000056282bd7dc4c in ?? ()
#28 0x00007f1dd2133fe6 in do_call (client=0x56282ddd8710, call_type=CALL_TYPE_NAME_ACQUIRED) at gdbusnameowning.c:215
#29 0x00007f1dd2134228 in request_name_cb (source_object=<optimized out>, res=<optimized out>, user_data=0x56282ddd8710) at gdbusnameowning.c:334
#30 0x00007f1dd20f8294 in g_task_return_now (task=0x56282ddda9e0) at gtask.c:1145
#31 0x00007f1dd20f8cb6 in g_task_return (task=0x56282ddda9e0, type=<optimized out>) at gtask.c:1203
#32 0x00007f1dd212bdc2 in g_dbus_connection_call_done (source=<optimized out>, result=0x56282dddaab0, user_data=0x56282ddda9e0) at gdbusconnection.c:5722
#33 0x00007f1dd20f8294 in g_task_return_now (task=0x56282dddaab0) at gtask.c:1145
#34 0x00007f1dd20f82c9 in complete_in_idle_cb (task=task@entry=0x56282dddaab0) at gtask.c:1159
#35 0x00007f1dd109a887 in g_idle_dispatch (source=0x7f1db80095f0, callback=0x7f1dd20f82c0 <complete_in_idle_cb>, user_data=0x56282dddaab0) at gmain.c:5486
#36 0x00007f1dd109de87 in g_main_dispatch (context=0x56282dd8f630) at gmain.c:3142
#37 g_main_context_dispatch (context=context@entry=0x56282dd8f630) at gmain.c:3795
#38 0x00007f1dd109e230 in g_main_context_iterate (context=0x56282dd8f630, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3868
#39 0x00007f1dd109e542 in g_main_loop_run (loop=0x56282ddddb90) at gmain.c:4064
#40 0x00007f1dd2b5cb15 in gtk_main () from /usr/lib64/libgtk-3.so.0
#41 0x000056282bd7d946 in ?? ()
#42 0x00007f1dd0a98f8a in __libc_start_main (main=0x56282bd7d460, argc=1, argv=0x7ffd3948a438, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd3948a428) at ../csu/libc-start.c:308
#43 0x000056282bd7da6a in ?? ()