Crash on rdp-backend from/by using Windows 10 rdp client
I have pretty recent build of weston from main branch, which I start with rdp backend:
/usr/bin/weston --backend=rdp-backend.so --rdp-tls-cert tls.crt --rdp-tls-key tls.key
on arm64 board.
I connect to it with Remote Desktop from a Win10 machine. The first connection usually succeeds. But when I close the connection and do not close the Remote Desktop application, but try to reconnect right away I get one of the following:
- either it's #509 (closed) and connection can't be established;
- or weston crashes. I've got a stacktrace for the crash
#0 0x0000ffff812935c4 in notify_motion_absolute (seat=0x0, time=time@entry=0xffffca045d00, x=x@entry=1070, y=y@entry=597) at ../git/libweston/input.c:1837
#1 0x0000ffff80a4ccc0 in xf_mouseEvent (input=<optimized out>, flags=<optimized out>, x=<optimized out>, y=597) at ../git/libweston/backend-rdp/rdp.c:1039
#2 0x0000ffff80937e3c in ?? () from /usr/lib/libweston-10/../libfreerdp2.so.2
#3 0x0000ffff8094af04 in ?? () from /usr/lib/libweston-10/../libfreerdp2.so.2
#4 0x0000ffff8094b7e0 in ?? () from /usr/lib/libweston-10/../libfreerdp2.so.2
#5 0x0000ffff8093afe0 in ?? () from /usr/lib/libweston-10/../libfreerdp2.so.2
#6 0x0000ffff809325e4 in ?? () from /usr/lib/libweston-10/../libfreerdp2.so.2
#7 0x0000ffff8094a524 in ?? () from /usr/lib/libweston-10/../libfreerdp2.so.2
#8 0x0000ffff80a4ce1c in rdp_client_activity (fd=<optimized out>, mask=<optimized out>, data=0xaaaac2f76ff0) at ../git/libweston/backend-rdp/rdp.c:734
#9 0x0000ffff81230e18 in wl_event_loop_dispatch () from /usr/lib/libwayland-server.so.0
#10 0x0000ffff8122e73c in wl_display_run () from /usr/lib/libwayland-server.so.0
#11 0x0000ffff8144290c in wet_main (argc=<optimized out>, argv=0xffffca046958, test_data=<optimized out>) at ../git/compositor/main.c:3506
#12 0x0000ffff812e6994 in __libc_start_main () from /lib/libc.so.6
#13 0x0000aaaabbb1a738 in _start () at ../sysdeps/aarch64/start.S:91
It seems to be a null pointer dereference. If you have any ideas what could be the reason, I could look into it further and fix it probably.
Edited by Marius Vlad