seahorse segfaults when changing keyring password
The bug is happening on the current Ubuntu serie with GNOME 3.31.91 and libsecret 0.18.7, has been reported on https://launchpad.net/bugs/1818053
'Confirmed, it segfaults when change the keyring password
- right click on the 'login' in the sidebar
- select change password
- type the old password then new one/confirm/validate
-> it segfaults, on this code line https://gitlab.gnome.org/GNOME/seahorse/blob/3.31.91/gkr/gkr-keyring.vala#L194'
The Ubuntu vala package maintainer hinted that issue could be due to 'libsecret (secret_service_prompt_at_dbus_path_finish) is returning an invalid and not-null GVariant'
backtrace
#0 g_atomic_ref_count_dec (arc=arc@entry=0xffffffffec008374) at ../../../glib/grefcount.c:260
_g_boolean_var_ = <optimized out>
__FUNCTION__ = "g_atomic_ref_count_dec"
#1 0x00007f1c02a105e2 in g_variant_unref (value=0xffffffffec008350) at ../../../glib/gvariant-core.c:684
__FUNCTION__ = "g_variant_unref"
_g_boolean_var_ = <optimized out>
_g_boolean_var_ = <optimized out>
#2 0x000056173ffa8798 in ___lambda22_ (_data5_=0x561740e78420, _data5_=0x561740e78420, obj=<optimized out>, res=<optimized out>) at ../gkr/gkr-keyring.vala:194
_tmp0_ = <optimized out>
_tmp1_ = <optimized out>
self = <optimized out>
_tmp5_ = <optimized out>
_inner_error_ = 0x0
_tmp4_ = <optimized out>
self = <optimized out>
_tmp4_ = <optimized out>
_tmp5_ = <optimized out>
_inner_error_ = <optimized out>
__func__ = "___lambda22_"
_g_boolean_var_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1_ = <optimized out>
_g_boolean_var_ = <optimized out>
err = <optimized out>
_tmp2_ = <optimized out>
_tmp3_ = <optimized out>
_g_boolean_var_ = <optimized out>
#3 ____lambda22__gasync_ready_callback (source_object=<optimized out>, res=<optimized out>, self=self@entry=0x561740e78420) at ../gkr/gkr-keyring.vala:194
No locals.
#4 0x00007f1c027f2602 in g_simple_async_result_complete (simple=0x561741110980) at ../../../gio/gsimpleasyncresult.c:802
current_source = <optimized out>
current_context = <optimized out>
__FUNCTION__ = "g_simple_async_result_complete"
#5 0x00007f1c01f11e9a in on_real_prompt_completed (source=0x5617413108a0, result=0x561741388720, user_data=user_data@entry=0x561741110980) at libsecret/secret-service.c:322
res = 0x561741110980
error = 0x0
retval = <optimized out>
#6 0x00007f1c027f2602 in g_simple_async_result_complete (simple=0x561741388720) at ../../../gio/gsimpleasyncresult.c:802
current_source = <optimized out>
current_context = <optimized out>
__FUNCTION__ = "g_simple_async_result_complete"
#7 0x00007f1c01f10481 in perform_prompt_complete (res=<optimized out>, dismissed=<optimized out>) at libsecret/secret-prompt.c:288
closure = <optimized out>
#8 0x00007f1c01f10d46 in on_prompt_completed (connection=<optimized out>, sender_name=<optimized out>, object_path=<optimized out>, interface_name=<optimized out>, signal_name=0x7f1bec020a10 "Completed", parameters=0x7f1bec007b60, user_data=0x561741388720) at libsecret/secret-prompt.c:314
res = 0x561741388720
self = 0x5617413108a0
closure = 0x56174130fb70
dismissed = 0
#9 0x00007f1c02857ba4 in emit_signal_instance_in_idle_cb (data=0x7f1bec003270) at ../../../gio/gdbusconnection.c:3743
signal_instance = 0x7f1bec003270
parameters = 0x7f1bec007b60
has_subscription = 1