[ https://issues.apache.org/jira/browse/GUACAMOLE-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16533959#comment-16533959 ]
Michael Jumper edited comment on GUACAMOLE-587 at 7/5/18 6:01 PM: ------------------------------------------------------------------ {quote} {code:none} ... guacd[7]: ERROR: Guacamole protocol violation. Perhaps the version of guacamole-client is incompatible with this version of libguac? guacd[7]: DEBUG: Error reading "connect": Instruction parse error ... {code} {quote} This error results from the {{connect}} instruction (sent to guacd during the Guacamole protocol handshake) not matching the {{args}} instruction originally sent by guacd. The Guacamole protocol requires that values for all arguments be provided, even if blank: http://guacamole.apache.org/doc/gug/guacamole-protocol.html#guacamole-protocol-handshake This is independent of the merge of client-side changes for GUACAMOLE-445, which only affect the user interface. The Guacamole protocol itself already provides sufficient information via the {{args}} instruction for the client side to respond with a correct {{connect}} instruction, and {{ConfiguredGuacamoleSocket}} takes this into account. was (Author: mike.jumper): {quote} {code:none} ... guacd[7]: ERROR: Guacamole protocol violation. Perhaps the version of guacamole-client is incompatible with this version of libguac? guacd[7]: DEBUG: Error reading "connect": Instruction parse error ... {code} This error results from the {{connect}} instruction (sent to guacd during the Guacamole protocol handshake) not matching the {{args}} instruction originally sent by guacd. The Guacamole protocol requires that values for all arguments be provided, even if blank: http://guacamole.apache.org/doc/gug/guacamole-protocol.html#guacamole-protocol-handshake This is independent of the merge of client-side changes for GUACAMOLE-445, which only affect the user interface. The Guacamole protocol itself already provides sufficient information via the {{args}} instruction for the client side to respond with a correct {{connect}} instruction, and {{ConfiguredGuacamoleSocket}} takes this into account. > RDP connections fail due to Guacamole protocol violation > -------------------------------------------------------- > > Key: GUACAMOLE-587 > URL: https://issues.apache.org/jira/browse/GUACAMOLE-587 > Project: Guacamole > Issue Type: Bug > Components: libguac > Affects Versions: 1.0.0 > Reporter: Marc > Priority: Blocker > Fix For: 1.0.0 > > > The implementation of the Guacamole protocol within libguac enforces a limit > on the number of elements a instruction may contain to ensure instruction > space cannot be exhausted without bound by a malicious client. This limit is > [currently set at > 64|https://github.com/apache/guacamole-server/blob/35237a4f88134c7a581ca28181c5bbbbea3d54ea/src/libguac/guacamole/parser-constants.h#L39-L42]: > {code:none} > /** > * The maximum number of elements per instruction, including the opcode. > */ > #define GUAC_INSTRUCTION_MAX_ELEMENTS 64 > {code} > As GUACAMOLE-445 added a 64th parameter to RDP, this means the client cannot > send its {{connect}} response to the initial {{args}} instruction during the > [Guacamole protocol > handshake|http://guacamole.apache.org/doc/gug/guacamole-protocol.html#guacamole-protocol-handshake] > without exceeding this limit, and connections cannot be established: > {code:none} > ... > guacd[7]: ERROR: Guacamole protocol violation. Perhaps the version of > guacamole-client is incompatible with this version of libguac? > guacd[7]: DEBUG: Error reading "connect": Instruction parse error > ... > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)