You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by "Michael Jumper (JIRA)" <ji...@apache.org> on 2018/07/05 18:02:00 UTC
[jira] [Comment Edited] (GUACAMOLE-587) RDP connections fail due to
Guacamole protocol violation
[ 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)