Crash when trying to connect to RDP
Affected version
- Nightly flatpak: Yes on Fedora 35 Wayland
Steps to reproduce
- Try to connect to a Windows 10 machine via RDP.
Current behavior
Connections crashes.
Expected behavior
It connects successfully.
Additional information
Terminal output:
(gnome-connections:2): Gtk-WARNING **: 10:49:57.407: GtkFlowBox with a model will ignore sort and filter functions
[10:50:00:041] [2:8] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[10:50:01:350] [2:8] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[10:50:01:367] [2:8] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[10:50:01:368] [2:8] [INFO][com.freerdp.core] - freerdp_tcp_connect:freerdp_set_last_error_ex resetting error state
[10:50:01:668] [2:8] [WARN][com.freerdp.crypto] - Certificate verification failure 'self signed certificate (18)' at stack position 0
[10:50:01:668] [2:8] [WARN][com.freerdp.crypto] - CN = redacted.hostname
Backtrace (for some reason freerdp and gtk-frdp debug symbols give CRC mismatches, even though I have .Debug installed and everything fully updated):
#0 0x00007f8440b1a4b3 in () at /app/lib/libgtk-frdp-0.1.so
#1 0x00007f84419f7dd1 in object_get_property (value=0x7f8438fd12f0, pspec=<optimized out>, object=0x55eed73e72d0 [FrdpSession]) at ../gobject/gobject.c:1559
#2 g_object_get_valist (var_args=0x7f8438fd13a0, first_property_name=<optimized out>, object=0x55eed73e72d0 [FrdpSession]) at ../gobject/gobject.c:2655
#3 g_object_get_valist (object=0x55eed73e72d0 [FrdpSession], first_property_name=<optimized out>, var_args=0x7f8438fd13a0) at ../gobject/gobject.c:2627
#4 0x00007f84419f823f in g_object_get (_object=0x55eed73e72d0, first_property_name=0x7f8440b1c00c "username") at ../gobject/gobject.c:2752
#5 0x00007f8440b194a4 in () at /app/lib/libgtk-frdp-0.1.so
#6 0x00007f84419f7dd1 in object_get_property (value=0x7f8438fd14f0, pspec=<optimized out>, object=0x55eed6fe3be0 [ConnectionsFrdpDisplay]) at ../gobject/gobject.c:1559
#7 g_object_get_valist (var_args=0x7f8438fd15a0, first_property_name=<optimized out>, object=0x55eed6fe3be0 [ConnectionsFrdpDisplay]) at ../gobject/gobject.c:2655
#8 g_object_get_valist (object=0x55eed6fe3be0 [ConnectionsFrdpDisplay], first_property_name=<optimized out>, var_args=0x7f8438fd15a0) at ../gobject/gobject.c:2627
#9 0x00007f84419f823f in g_object_get (_object=_object@entry=0x55eed6fe3be0, first_property_name=first_property_name@entry=0x55eed5a4a050 "username") at ../gobject/gobject.c:2752
#10 0x000055eed5a43ae2 in connections_frdp_display_real_authenticate (base=0x55eed6fe3be0 [ConnectionsFrdpDisplay], username=0x7f8424007828, password=0x7f8424007830, domain=0x7f8424007838) at ../src/rdp-connection.vala:122
#11 0x00007f843f8d0248 in () at /app/lib/libfreerdp2.so.2
#12 0x00007f843f9113f0 in () at /app/lib/libfreerdp2.so.2
#13 0x00007f843f8d38be in () at /app/lib/libfreerdp2.so.2
#14 0x00007f843f8d529f in () at /app/lib/libfreerdp2.so.2
#15 0x00007f843f8fe1be in () at /app/lib/libfreerdp2.so.2
#16 0x00007f843f8f109e in freerdp_connect () at /app/lib/libfreerdp2.so.2
#17 0x00007f8440b1ae8f in () at /app/lib/libgtk-frdp-0.1.so
#18 0x00007f8441afbc07 in g_task_thread_pool_thread (thread_data=0x55eed73d03d0, pool_data=<optimized out>) at ../gio/gtask.c:1434
#19 0x00007f84419226f5 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#20 0x00007f8441921d29 in g_thread_proxy (data=0x55eed7340c00) at ../glib/gthread.c:827
#21 0x00007f844088f3ba in start_thread (arg=0x7f8438fd2640) at pthread_create.c:481
#22 0x00007f8440a47b03 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
bt full
#0 0x00007f8440b1a4b3 in () at /app/lib/libgtk-frdp-0.1.so
#1 0x00007f84419f7dd1 in object_get_property (value=0x7f8438fd12f0, pspec=<optimized out>, object=0x55eed73e72d0 [FrdpSession]) at ../gobject/gobject.c:1559
class = <optimized out>
param_id = <optimized out>
redirect = <optimized out>
value = {g_type = 0x40 [gchararray], 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}}}
pspec = 0x55eed73e7160 [GParamString]
error = <optimized out>
name = <optimized out>
__func__ = "g_object_get_valist"
name = <optimized out>
__func__ = "g_object_get_valist"
#2 g_object_get_valist (var_args=0x7f8438fd13a0, first_property_name=<optimized out>, object=0x55eed73e72d0 [FrdpSession]) at ../gobject/gobject.c:2655
value = {g_type = 0x40 [gchararray], 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}}}
pspec = 0x55eed73e7160 [GParamString]
error = <optimized out>
name = <optimized out>
__func__ = "g_object_get_valist"
name = <optimized out>
__func__ = "g_object_get_valist"
#3 g_object_get_valist (object=0x55eed73e72d0 [FrdpSession], first_property_name=<optimized out>, var_args=0x7f8438fd13a0) at ../gobject/gobject.c:2627
name = <optimized out>
__func__ = "g_object_get_valist"
#4 0x00007f84419f823f in g_object_get (_object=0x55eed73e72d0, first_property_name=0x7f8440b1c00c "username") at ../gobject/gobject.c:2752
object = 0x55eed73e72d0 [FrdpSession]
var_args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7f8438fd1490, reg_save_area = 0x7f8438fd13c0}}
__func__ = "g_object_get"
#5 0x00007f8440b194a4 in () at /app/lib/libgtk-frdp-0.1.so
#6 0x00007f84419f7dd1 in object_get_property (value=0x7f8438fd14f0, pspec=<optimized out>, object=0x55eed6fe3be0 [ConnectionsFrdpDisplay]) at ../gobject/gobject.c:1559
class = <optimized out>
param_id = <optimized out>
redirect = <optimized out>
value = {g_type = 0x40 [gchararray], 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}}}
pspec = 0x55eed7351ee0 [GParamString]
error = <optimized out>
name = <optimized out>
__func__ = "g_object_get_valist"
name = <optimized out>
__func__ = "g_object_get_valist"
#7 g_object_get_valist (var_args=0x7f8438fd15a0, first_property_name=<optimized out>, object=0x55eed6fe3be0 [ConnectionsFrdpDisplay]) at ../gobject/gobject.c:2655
value = {g_type = 0x40 [gchararray], 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}}}
pspec = 0x55eed7351ee0 [GParamString]
error = <optimized out>
name = <optimized out>
__func__ = "g_object_get_valist"
name = <optimized out>
__func__ = "g_object_get_valist"
#8 g_object_get_valist (object=0x55eed6fe3be0 [ConnectionsFrdpDisplay], first_property_name=<optimized out>, var_args=0x7f8438fd15a0) at ../gobject/gobject.c:2627
name = <optimized out>
__func__ = "g_object_get_valist"
#9 0x00007f84419f823f in g_object_get (_object=_object@entry=0x55eed6fe3be0, first_property_name=first_property_name@entry=0x55eed5a4a050 "username") at ../gobject/gobject.c:2752
object = 0x55eed6fe3be0 [ConnectionsFrdpDisplay]
var_args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7f8438fd1690, reg_save_area = 0x7f8438fd15c0}}
__func__ = "g_object_get"
#10 0x000055eed5a43ae2 in connections_frdp_display_real_authenticate (base=0x55eed6fe3be0 [ConnectionsFrdpDisplay], username=0x7f8424007828, password=0x7f8424007830, domain=0x7f8424007838) at ../src/rdp-connection.vala:122
self = 0x55eed6fe3be0 [ConnectionsFrdpDisplay]
_vala_username = 0x0
_vala_password = 0x0
_vala_domain = 0x0
_tmp0_ = 0x7f8424007828 ""
_tmp1_ = <optimized out>
_tmp2_ = 0x7f8438fd16e0 "@\027\375\070\204\177"
_tmp3_ = <optimized out>
result = 0
#11 0x00007f843f8d0248 in () at /app/lib/libfreerdp2.so.2
#12 0x00007f843f9113f0 in () at /app/lib/libfreerdp2.so.2
#13 0x00007f843f8d38be in () at /app/lib/libfreerdp2.so.2
#14 0x00007f843f8d529f in () at /app/lib/libfreerdp2.so.2
#15 0x00007f843f8fe1be in () at /app/lib/libfreerdp2.so.2
#16 0x00007f843f8f109e in freerdp_connect () at /app/lib/libfreerdp2.so.2
#17 0x00007f8440b1ae8f in () at /app/lib/libgtk-frdp-0.1.so
#18 0x00007f8441afbc07 in g_task_thread_pool_thread (thread_data=0x55eed73d03d0, pool_data=<optimized out>) at ../gio/gtask.c:1434
task = 0x55eed73d03d0 [GTask]
#19 0x00007f84419226f5 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
task = 0x55eed73d03d0
pool = <optimized out>
#20 0x00007f8441921d29 in g_thread_proxy (data=0x55eed7340c00) at ../glib/gthread.c:827
thread = 0x55eed7340c00
__func__ = "g_thread_proxy"
#21 0x00007f844088f3ba in start_thread (arg=0x7f8438fd2640) at pthread_create.c:481
ret = <optimized out>
pd = 0x7f8438fd2640
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140205868525120, -1029426720112392628, 140725576058176, 140725576057870, 140725576057871, 0, -1029426720032700852, -1029550587781200308}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#22 0x00007f8440a47b03 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95