Description
Within the file descriptor implementation of guac_socket (and possibly elsewhere), the call to send() or write() uses the pointer which always points to the beginning of the buffer, rather than the pointer which is updated as chunks are written:
This will result in duplicate data being written if the first write does not succeed in writing absolutely everything, most likely resulting in invalid protocol data and a disconnect.
Based on the fact that Guacamole works ... it seems this is rather unlikely in practice, but it should be fixed.