Source: freerdp3
Version: 3.15.0+dfsg-2.1
Severity: normal
User:
devel@kali.org
Usertags: origin-kali
Dear Maintainer,
as reported on the Kali Linux bug tracker at
https://bugs.kali.org/view.php?id=9197, the rdp2tcp "channel client"
is missing in freerdp3, while it was built in freerdp2. Logs:
```
$ xfreerdp3 /v:127.0.0.1 /u:'xxxxxx' /d:'xxxx' /cert:ignore /dynamic-resolution /rdp2tcp:"rdp2tcp"
[09:55:59:528] [9945:000026da] [WARN][com.freerdp.client.x11] - [load_map_from_xkbfile]: : keycode: 0x08 -> no RDP scancode found
[09:55:59:528] [9945:000026da] [WARN][com.freerdp.client.x11] - [load_map_from_xkbfile]: : keycode: 0x5D -> no RDP scancode found
[09:55:59:529] [9945:000026da] [ERROR][com.winpr.library] - [LoadLibraryA]: failed with /usr/lib/x86_64-linux-gnu/freerdp3/librdp2tcp-client.so: cannot open shared object file: No such file or directory
[09:55:59:529] [9945:000026da] [WARN][com.freerdp.addin] - [freerdp_load_channel_addin_entry]: Failed to load channel rdp2tcp [(null)]
[09:55:59:529] [9945:000026da] [ERROR][com.winpr.library] - [LoadLibraryA]: failed with /usr/lib/x86_64-linux-gnu/freerdp3/librdp2tcp-client.so: cannot open shared object file: No such file or directory
[09:55:59:529] [9945:000026da] [WARN][com.freerdp.addin] - [freerdp_load_channel_addin_entry]: Failed to load channel rdp2tcp [(null)]
[09:55:59:531] [9945:000026da] [ERROR][com.freerdp.client.common] - [freerdp_client_load_channels]: Failed to load addins [00000000]
[09:55:59:531] [9945:000026da] [ERROR][com.freerdp.core] - [freerdp_connect_begin]: ERRCONNECT_PRE_CONNECT_FAILED [0x00020001]
[09:55:59:531] [9945:000026da] [ERROR][com.freerdp.core] - [freerdp_connect_begin]: freerdp_pre_connect failed: CLIENT_STATE_PRECONNECT_PASSED
```
I was curious to see if other things were missing, so I compared the
logs between two builds:
* freerdp2_2.11.7+dfsg1-6_amd64.log
* freerdp3_3.15.0+dfsg-2.1_amd64.log
And compared the stuff that's built-in:
```
$ grep -E 'Adding (STATIC|DYNAMIC) ' freerdp2_2.11.7+dfsg1-6_amd64.log | LC_ALL=C sort -u
-- Adding DYNAMIC channel client "disp": Display Update Virtual Channel Extension
-- Adding DYNAMIC channel client "geometry": Geometry tracking Virtual Channel Extension
-- Adding DYNAMIC channel client "rdpei": Input Virtual Channel Extension
-- Adding DYNAMIC channel client "rdpgfx": Graphics Pipeline Extension
-- Adding DYNAMIC channel client "urbdrc": USB Devices Virtual Channel Extension
-- Adding DYNAMIC channel client "video": Video optimized remoting Virtual Channel Extension
-- Adding DYNAMIC channel client server "ainput": Advanced Input Virtual Channel Extension
-- Adding DYNAMIC channel client server "audin": Audio Input Redirection Virtual Channel Extension
-- Adding DYNAMIC channel client server "echo": Echo Virtual Channel Extension -- Adding DYNAMIC channel server "rdpecam": Video Capture Virtual Channel Extension
-- Adding DYNAMIC channel server "telemetry": Telemetry Virtual Channel Extension
-- Adding STATIC channel client "rail": Remote Programs Virtual Channel Extension
-- Adding STATIC channel client "rdp2tcp": Tunneling TCP over RDP
-- Adding STATIC channel client server "cliprdr": Clipboard Virtual Channel Extension
-- Adding STATIC channel client server "drdynvc": Dynamic Virtual Channel Extension
-- Adding STATIC channel client server "encomsp": Multiparty Virtual Channel Extension
-- Adding STATIC channel client server "rdpdr": Device Redirection Virtual Channel Extension
-- Adding STATIC channel client server "rdpsnd": Audio Output Virtual Channel Extension
-- Adding STATIC channel client server "remdesk": Remote Assistance Virtual Channel Extension
$ grep -E 'Adding (STATIC|DYNAMIC) ' freerdp3_3.15.0+dfsg-2.1_amd64.log | LC_ALL=C sort -u
-- Adding DYNAMIC channel client "geometry": Geometry tracking Virtual Channel Extension
-- Adding DYNAMIC channel client "rdpear": Authentication redirection Virtual Channel Extension
-- Adding DYNAMIC channel client "urbdrc": USB Devices Virtual Channel Extension
-- Adding DYNAMIC channel client "video": Video optimized remoting Virtual Channel Extension
-- Adding DYNAMIC channel client server "ainput": Advanced Input Virtual Channel Extension
-- Adding DYNAMIC channel client server "audin": Audio Input Redirection Virtual Channel Extension
-- Adding DYNAMIC channel client server "disp": Display Update Virtual Channel Extension
-- Adding DYNAMIC channel client server "echo": Echo Virtual Channel Extension -- Adding DYNAMIC channel client server "location": Location Virtual Channel Extension
-- Adding DYNAMIC channel client server "rdpecam": Video Capture Virtual Channel Extension
-- Adding DYNAMIC channel client server "rdpei": Input Virtual Channel Extension
-- Adding DYNAMIC channel client server "rdpgfx": Graphics Pipeline Extension -- Adding DYNAMIC channel server "rdpemsc": Mouse Cursor Virtual Channel Extension
-- Adding DYNAMIC channel server "telemetry": Telemetry Virtual Channel Extension
-- Adding STATIC channel client server "cliprdr": Clipboard Virtual Channel Extension
-- Adding STATIC channel client server "drdynvc": Dynamic Virtual Channel Extension
-- Adding STATIC channel client server "encomsp": Multiparty Virtual Channel Extension
-- Adding STATIC channel client server "rail": Remote Programs Virtual Channel Extension
-- Adding STATIC channel client server "rdpdr": Device Redirection Virtual Channel Extension
-- Adding STATIC channel client server "rdpsnd": Audio Output Virtual Channel Extension
-- Adding STATIC channel client server "remdesk": Remote Assistance Virtual Channel Extension
```
The two outputs are a bit hard to compare, because some things used to
be "client" and are now "client server". But still, after doing a diff side-by-side, it seems that the only thing missing in freerdp3 is
rdp2tcp. I don't know why it's not automatically selected, but it can be
fixed with:
```
-DCHANNEL_RDP2TCP=ON -DCHANNEL_RDP2TCP_CLIENT=ON
```
Please consider adding this change to prevent a regression for xfreerdp
users. Thanks in advance,
Arnaud
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)