Crash on widget usage with hardened malloc since 0.4.16
Since version 0.4.16-1 (on Debian sid with KDE) the widget crashes during usage. Downgrading to 0.4.15-2 solves the issue.
Nov 25 19:18:47 debian wireplumber[1829]: fatal allocator error: detected write after free
Core was generated by `/usr/bin/wireplumber'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
[Current thread is 1 (Thread 0x7fc5ffa58840 (LWP 1829))]
(gdb) bt full
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
tid = <optimized out>
ret = 0
pd = <optimized out>
old_mask = {__val = {818445187338589683}}
ret = <optimized out>
#1 0x00007fc5ffc9d15f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
No locals.
#2 0x00007fc5ffc4f472 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0x00007fc5ffc394b2 in __GI_abort () at ./stdlib/abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {687194808372, 140265934151680, 140488381491867, 140265935338240, 335007469164, 140265934151680, 140488379859979, 140265934810880, 103,
0, 140488377150292, 128177316594904, 1, 140488381510362, 1, 140488379922551}}, sa_flags = 1253961, sa_restorer = 0x0}
#4 0x00007fc60012d621 in fatal_error () from /usr/local/lib/libhardened_malloc.so
No symbol table info available.
#5 0x00007fc60012eab9 in allocate () from /usr/local/lib/libhardened_malloc.so
No symbol table info available.
#6 0x00007fc5fff5627a in g_malloc0 (n_bytes=80) at ../../../glib/gmem.c:163
mem = <optimized out>
#7 0x00007fc5fff644ad in g_rc_box_alloc_full (clear=1, atomic=0, alignment=16, block_size=48) at ../../../glib/grcbox.c:236
private_size = 32
private_offset = 0
real_size = <optimized out>
allocated = <optimized out>
private_size = <optimized out>
private_offset = <optimized out>
real_size = <optimized out>
allocated = <optimized out>
__func__ = "g_rc_box_alloc_full"
_g_boolean_var_9 = <optimized out>
_g_boolean_var_10 = <optimized out>
offset = <optimized out>
_g_boolean_var_11 = <optimized out>
real_box = <optimized out>
real_box = <optimized out>
#8 g_rc_box_alloc0 (block_size=block_size@entry=48) at ../../../glib/grcbox.c:334
__func__ = "g_rc_box_alloc0"
#9 0x00007fc6000c0e6e in wp_iterator_new (methods=methods@entry=0x7fc60010b2c0 <om_iterator_methods>, user_size=user_size@entry=32) at ../lib/wp/iterator.c:87
self = 0x0
__func__ = "wp_iterator_new"
#10 0x00007fc6000cb68a in wp_object_manager_new_filtered_iterator_full (self=self@entry=0x73a76bea6ba0, interest=0x7387bb5f7480) at ../lib/wp/object-manager.c:539
it = <optimized out>
it_data = <optimized out>
error = 0x0
__func__ = "wp_object_manager_new_filtered_iterator_full"
#11 0x00007fc6000cb8e8 in wp_object_manager_lookup_full (self=self@entry=0x73a76bea6ba0, interest=<optimized out>) at ../lib/wp/object-manager.c:599
ret = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
v_float = 0, v_double = 0, v_pointer = 0x0}}}
it = <optimized out>
#12 0x00007fc6000cba14 in wp_object_manager_lookup (self=0x73a76bea6ba0, gtype=127282598122368) at ../lib/wp/object-manager.c:577
interest = <optimized out>
args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fff75459578, reg_save_area = 0x7fff754594a0}}
__func__ = "wp_object_manager_lookup"
#13 0x000073432b82c16f in collect_node_info (node=0x7416f89911a0, info=<optimized out>, self=0x73c34a0c6cc0) at ../modules/module-mixer-api.c:184
dev = 0x0
str = 0x735408d76f50 "44"
have_volume = 0
dev = <optimized out>
str = <optimized out>
have_volume = <optimized out>
p_device = <optimized out>
it = <optimized out>
val = <optimized out>
param = <optimized out>
r_index = <optimized out>
r_device = <optimized out>
props = <optimized out>
it = <optimized out>
val = <optimized out>
param = <optimized out>
#14 on_objects_changed (om=<optimized out>, self=self@entry=0x73c34a0c6cc0) at ../modules/module-mixer-api.c:282
node = 0x7416f89911a0
id = <optimized out>
it = <optimized out>
val = {g_type = 127282598121472, data = {{v_int = -124186208, v_uint = 4170781088, v_long = 127642008883616, v_ulong = 127642008883616, v_int64 = 127642008883616, v_uint64 = 127642008883616, v_float = -2.48368405e+34,
v_double = 6.3063531555557868e-310, v_pointer = 0x7416f89911a0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
infos_it = {dummy1 = 0x73b33781cd20, dummy2 = 0x0, dummy3 = 0x0, dummy4 = 8, dummy5 = 0, dummy6 = 0x6}
info = 0x7475e5d5a780
old = {seq = 101, device_id = 44, route_index = 3, route_device = 4, volume = {channels = 2 '\002', values = {0.512005866, 0.512005866, 0 <repeats 62 times>}}, monitorVolume = {channels = 0 '\000', values = {
0 <repeats 64 times>}}, map = {channels = 2 '\002', map = {3, 4, 0 <repeats 62 times>}}, mute = false, svolume = 1, base = 1, step = 1.52585562e-05}
__func__ = "on_objects_changed"
#15 0x000073432b82c613 in on_sync_done (core=0x7416f88de880, res=<optimized out>, self=0x73c34a0c6cc0) at ../modules/module-mixer-api.c:243
error = 0x0
__func__ = "on_sync_done"
#16 0x00007fc600051540 in g_closure_invoke (closure=0x739946cd1a20, return_value=0x0, n_param_values=2, param_values=0x7fff75459a70, invocation_hint=0x0) at ../../../gobject/gclosure.c:832
marshal = 0x7fc600054b30 <g_cclosure_marshal_VOID__OBJECT>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x739946cd1a00
__func__ = "g_closure_invoke"
#17 0x00007fc6000bb468 in invoke_closure (obj=0x7416f88de880, res=0x73eabd0e4f00, data=0x739946cd1a20) at ../lib/wp/core.c:994
closure = 0x739946cd1a20
values = {{g_type = 80, data = {{v_int = -124917632, v_uint = 4170049664, v_long = 127642008152192, v_ulong = 127642008152192, v_int64 = 127642008152192, v_uint64 = 127642008152192, v_float = -2.30259224e+34,
v_double = 6.3063531194186397e-310, v_pointer = 0x7416f88de880}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}, {g_type = 80, data = {{
v_int = -1123135744, v_uint = 3171831552, v_long = 127452031373056, v_ulong = 127452031373056, v_int64 = 127452031373056, v_uint64 = 127452031373056, v_float = -0.034743309, v_double = 6.2969670194107729e-310,
v_pointer = 0x73eabd0e4f00}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}}
#18 0x00007fc5ff6c8ee3 in g_task_return_now (task=task@entry=0x73eabd0e4f00) at ../../../gio/gtask.c:1371
No locals.
#19 0x00007fc5ff6c9b83 in g_task_return (type=<optimized out>, task=0x73eabd0e4f00) at ../../../gio/gtask.c:1440
source = 0x73b33780aaf0
source = <optimized out>
source_name = <optimized out>
#20 g_task_return (task=0x73eabd0e4f00, type=<optimized out>) at ../../../gio/gtask.c:1397
source = <optimized out>
source_name = <optimized out>
#21 0x00007fc6000bb30e in core_done (data=0x7416f88de880, id=<optimized out>, seq=1073742501) at ../lib/wp/core.c:202
self = <optimized out>
task = 0x73eabd0e4f00
__func__ = "core_done"
#22 0x000073432c9f03e3 in core_event_demarshal_done (data=<optimized out>, msg=<optimized out>) at ../src/modules/module-protocol-native/protocol-native.c:333
_f = <optimized out>
_res = true
_list = 0x74262b2bbed8
_s = 0x74262b2bbed8
_cursor = {link = {next = 0x74262b2bbed8, prev = 0x7416f88de8c0}, cb = {funcs = 0x0, data = 0x0}, removed = 0x0, priv = 0x0}
_ci = <optimized out>
_count = 1
proxy = <optimized out>
prs = {data = 0x7615419e8010, size = 40, _padding = 0, state = {offset = 40, flags = 0, frame = 0x0}}
id = 0
seq = 1073742501
#23 0x000073432c9e8675 in process_remote (impl=impl@entry=0x73eabd091500) at ../src/modules/module-protocol-native.c:1033
proxy = 0x74262b2bbe80
demarshal = 0x73432ca1d820 <pw_protocol_native_core_event_demarshal>
marshal = <optimized out>
msg = 0x739946c8dcd8
conn = 0x755824b11800
this = 0x74262b2bbe80
res = 1
__func__ = "process_remote"
#24 0x000073432c9e8e40 in on_remote_data (data=0x73eabd091500, fd=17, mask=1) at ../src/modules/module-protocol-native.c:1067
impl = 0x73eabd091500
this = 0x74262b2bbe80
core_proxy = 0x74262b2bbe80
conn = 0x755824b11800
context = <optimized out>
loop = 0x739946c4bd70
res = 0
__func__ = "on_remote_data"
#25 0x000073432d955dd6 in loop_iterate (object=0x75d4836bf028, timeout=<optimized out>) at ../spa/plugins/support/loop.c:496
s = <optimized out>
impl = 0x75d4836bf028
ep = {{events = 1, data = 0x73b3378187e0}, {events = 1, data = 0x73b337818bd0}, {events = 730651232, data = 0x73432b870536 <GCTM+294>}, {events = 1810966496, data = 0xffffffffffffef47}, {events = 3004612104,
data = 0x617078656b206574}, {events = 4233402921, data = 0x654}, {events = 3905324819, data = 0xefc3c6debaa062d}, {events = 3062998523, data = 0x7f923535ea78}, {events = 892726144, data = 0x40}, {events = 857760878,
data = 0x374000000037}, {events = 2092045853, data = 0x80e0738d000000e4}, {events = 31922, data = 0x80e039422fb2}, {events = 128, data = 0x3900003942}, {events = 61322, data = 0xe80000e8c6}, {events = 9015,
data = 0xeb0000ebaa}, {events = 3836, data = 0xb691d8c58d87}, {events = 182, data = 0xc80e000000d8}, {events = 2891454090, data = 0xba82da90}, {events = 1691428559, data = 0x73c34a0f6500}, {events = 0,
data = 0x7fc600050ec0 <g_closure_unref+608>}, {events = 0, data = 0x9a330}, {events = 2147483648, data = 0x0}, {events = 0, data = 0x0}, {events = 3119802112, data = 0x1000}, {events = 421175968, data = 0xe}, {
events = 892198912, data = 0x7fc60012ea9b <allocate+2075>}, {events = 3, data = 0x7fc60012da3d <deallocate_small+461>}, {events = 48, data = 0x55}, {events = 4096, data = 0x60900}, {events = 892198912,
data = 0x7fc5ffd0ab54 <__GI___libc_write+100>}, {events = 1967497040, data = 0x8}, {events = 1967496944, data = 0x8}}
e = <optimized out>
i = 0
nfds = 1
#26 0x00007fc6000baf54 in wp_loop_source_dispatch (s=0x73b33780aaf0, callback=<optimized out>, user_data=<optimized out>) at ../lib/wp/core.c:42
_f = <optimized out>
_res = <optimized out>
_o = <optimized out>
result = <optimized out>
__func__ = "wp_loop_source_dispatch"
#27 0x00007fc5fff4c1f4 in g_main_dispatch (context=context@entry=0x73eabd090240) at ../../../glib/gmain.c:3476
dispatch = 0x7fc6000baf00 <wp_loop_source_dispatch>
prev_source = 0x0
begin_time_nsec = 0
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
source = 0x73b33780aaf0
current = 0x736432cde3e0
i = 0
__func__ = "g_main_dispatch"
#28 0x00007fc5fff4f317 in g_main_context_dispatch_unlocked (context=0x73eabd090240) at ../../../glib/gmain.c:4284
No locals.
#29 g_main_context_iterate_unlocked (context=0x73eabd090240, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4349
max_priority = 2147483647
timeout = 1000
some_ready = 1
nfds = <optimized out>
allocated_nfds = 4
fds = 0x7375190ead20
begin_time_nsec = 0
#30 0x00007fc5fff4fc1f in g_main_loop_run (loop=0x736432cd6e80) at ../../../glib/gmain.c:4551
self = <optimized out>
__func__ = "g_main_loop_run"
#31 0x00005599201d46cd in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:482
d = {core = 0x7416f88de880, loop = 0x736432cd6e80, exit_code = 0}
context = 0x73a76be98cc0
error = 0x0
properties = 0x0
config_file_path = 0x7375190b0c00 "/usr/share/wireplumber/wireplumber.conf"