Uploaded image for project: 'Guacamole'
  1. Guacamole
  2. GUACAMOLE-349

RDP keymap translation unnecessarily presses SHIFT_L when SHIFT_R is held

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Duplicate
    • None
    • None
    • RDP
    • None

    Description

      We've come across a bug that is corrupting the user input for guacamole sessions over rdp. The problem only occurs when you open a RDP session inside the RDP session established by guacamole. Our use case is that we connect to a Hyper-V server and would open the console of a VM running on it. You can very well test that too with connecting to any RDP server from the connection established by guacamole.

      We've tested this extensively and we can observe the following: Whenever you press a key combination that produces another result by adding a modifier key, like "SHIFT_R + ."(dot) which should lead to an ">" sign, it's only a matter of time when this is mapped to a "."(dot) sign. This does not only occur when you hold both keys down, it also occurs occasionally when you press it the first time. This makes entering passwords super hard and seems to be a bug.

      We've traced it down to the corresponding C code and think the problem is here:

      https://github.com/apache/incubator-guacamole-server/blob/master/src/protocols/rdp/keyboard.c#L261

      In some cases of extra mapped keys, for example in the above case, it's sending more keys than expected. We can see that “SHIFT_L + .” results in following keysym updates:

      • 0xFFE1 (SHIFT_L) pressed
      • 0x003E (>) pressed
      • 0x003E (>) released
      • 0xFFE1 (SHIFT_L) released

      and works perfectly fine. In contrast “SHIFT_R + .” results in following events:

      • 0xFFE2 (SHIFT_R) pressed
      • 0xFFE1 (SHIFT_L) pressed
      • 0x003E (>) pressed
      • 0xFFE1 (SHIFT_L) released
      • 0xFFE1 (SHIFT_L) pressed
      • 0x003E (>) released
      • 0xFFE1 (SHIFT_L) released
      • 0xFFE2 (SHIFT_R) released

      which leads to the described behavior above.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              sebastian.ohmsen Sebastian Ohmsen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: