When connecting to a Gnome Remote Desktop RDP instance the mouse cursor is created but the image data is never copied into the cursor's pixel buffer resulting in a garbled bitmap containing uninitialized data:
This appears to happen because of this guard condition in src/protocols/rdp/pointer.c (line 49):
It appears when Gnome Remote Desktop initializes cursors when starting the session it sets `andMaskData` to NULL with a length of zero:
This causes the guard condition in the RDP plugin to fail to copy bitmap data from the server. It appears as if FreeRDP correctly handles the image data in freerdp_image_copy_from_pointer_data() if lengthAndMask == 0:
I believe this guard condition is probably not necessary; removing it resolves the issue for me. I tested against both Gnome Remote Desktop and a Windows 11 Professional instance.
Please let me know if you'd like any additional information or testing done. This was tested with Guacamole 1.4.0 from Docker Hub (guacamole/guacamole:1.4.0 and guacamole/guacd:1.4.0). Testing against a fresh install of Fedora 37/Gnome 43.