gdi_init_ex() crashes with a failed WINPR_ASSERT(cache) inside 
brush_cache_register_callbacks() when called by Chainguard's guacamole-server 
image's RDP plugin (the stock apache/guacamole-server 1.6.0 codebase, packaged 
by Chainguard) — a normal, fully-connecting RDP client (completes capability 
negotiation, authentication, and framebuffer format agreement) — starting with 
FreeRDP 3.31.0.

guacd[N]: INFO: Loading keymap "en-us-qwerty"
guacd[N]: DEBUG: Local framebuffer format PIXEL_FORMAT_BGRX32
guacd[N]: DEBUG: Remote framebuffer format PIXEL_FORMAT_BGRA32
guacd[N]: DEBUG: ((cache)) 
[./libfreerdp/cache/brush.c:brush_cache_register_callbacks:230]
guacd[N]: DEBUG: 0: ... libwinpr3.so.3 ...
guacd[N]: DEBUG: 1: ... dli_sname=winpr_log_backtrace_ex ...
guacd[N]: DEBUG: 2: ... dli_sname=winpr_int_assert ...
guacd[N]: DEBUG: 3: ... dli_fname=/usr/lib/libfreerdp3.so.3, 
dli_sname=gdi_init_ex ...
guacd[N]: DEBUG: 4: ... dli_fname=/usr/lib/libguac-client-rdp.so ...
guacd[N]: DEBUG: 5: ... dli_sname=freerdp_connect ...
guacd[N]: DEBUG: 6: ... dli_sname=guac_rdp_client_thread ...
guacd[1]: INFO: Connection removed.

Environment
Distribution: Chainguard's guacamole-server container image (packages the stock 
apache/guacamole-server 1.6.0 codebase, bundled with their own 
independently-versioned FreeRDP build) — not Apache's own official Docker Hub 
image, and not a from-source build with any local patches to the RDP plugin
FreeRDP: 3.31.0-r1 and 3.31.1 (Chainguard guacamole-server tags 
1.6.0-r10/1.6.0-r11)
Confirmed absent in FreeRDP 3.27.1 (Chainguard guacamole-server:1.6.0-r9) and 
3.30.0
Platform: linux/amd64 (also reproduced via qemu emulation from linux/arm64 host)
guacamole-server application version: 1.6.0 (unchanged across all tags above — 
only the bundled FreeRDP version differs)


I have reached out to FreeRDP, but they mentioned that it is a guacamole bug
https://github.com/apache/guacamole-server/blob/d3b7828977c63a5b197158d6cbbdaf1846b579fb/src/protocols/rdp/rdp.c#L197
 is in PreConnect callback - something that was never supported (or done in any 
of the reference clients)

Thank you,

Keiko Hashizume

________________________________
The information contained in this e-mail message is intended only for the 
personal and confidential use of the recipient(s) named above. This message may 
be an attorney-client communication and/or work product and as such is 
privileged and confidential. If the reader of this message is not the intended 
recipient or an agent responsible for delivering it to the intended recipient, 
you are hereby notified that you have received this document in error and that 
any review, dissemination, distribution, or copying of this message is strictly 
prohibited. If you have received this communication in error, please notify us 
immediately by e-mail, and delete the original message.

Reply via email to