[ https://issues.apache.org/jira/browse/GUACAMOLE-1140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nick Couchman updated GUACAMOLE-1140: ------------------------------------- Fix Version/s: 1.5.5 > Starting/joining an RDP connection may segfault depending on timing of > underlying RDP/SFTP connection(s) > -------------------------------------------------------------------------------------------------------- > > Key: GUACAMOLE-1140 > URL: https://issues.apache.org/jira/browse/GUACAMOLE-1140 > Project: Guacamole > Issue Type: Bug > Components: RDP > Affects Versions: 1.2.0, 1.5.4 > Reporter: Thomas Kruse > Assignee: Nick Couchman > Priority: Major > Fix For: 1.5.5 > > Attachments: core.lzma > > > If a user joins an RDP connection leveraging Guacamole's session sharing > functionality, but the underlying connection to the RDP server has not yet > been established, a segfault may occur while handling the join operation: > {code:none} > #1 0x000055da270e5de9 in guac_common_list_lock (list=<optimized out>) at > list.c:75 > #2 0x00007f8bb956c5cb in guac_rdp_pipe_svc_send_pipes > (user=user@entry=0x7f8bac00d5e0) at channels/pipe-svc.c:49 > #3 0x00007f8bb957a0cb in guac_rdp_user_join_handler (user=0x7f8bac00d5e0, > argc=<optimized out>, argv=<optimized out>) at user.c:92 > #4 0x00007f8bbb1d134a in guac_client_add_user > (client=client@entry=0x7f8b280060e0, user=user@entry=0x7f8bac00d5e0, > argc=argc@entry=76, > argv=<optimized out>) at client.c:286 > #5 0x00007f8bbb1d8bea in guac_user_handle_connection > (user=user@entry=0x7f8bac00d5e0, usec_timeout=usec_timeout@entry=15000000) > at user-handshake.c:337 > #6 0x000055da270e5a96 in guacd_user_thread (data=0x7f8b280ad010) at proc.c:98 > #7 0x00007f8bbade2fa3 in start_thread (arg=<optimized out>) at > pthread_create.c:486 > #8 0x00007f8bba71f4cf in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 > {code} > This is because the relevant structure ({{rdp_client->available_svc}}) is not > actually allocated until later in the RDP-specific connection initialization > process, which occurs in its own thread spawned by the connection owner. If > that allocation has not yet occurred, the attempt to synchronize the > newly-joined user with the current session state will result in a segfault. > Original context: > {quote} > I am running guacd from docker on an Ubuntu 20.04 host. Connections to guacd > are from a custom backend using the official guacamole-common 1.1.0 maven > artifact with a websocket. > To demonstrate stuff (teaching) multiple connections (10-12) are opened as > shared sessions with the read-only property set after a leading session is > opened and the connection id is propagated. The shared connections are all > opened simultaneously - and closed (more or less) simultaneously, often > together with the leading session. > Shared drive is disabled. > Most of the time it works flawlessly, until guacd segfaults. > {quote} -- This message was sent by Atlassian Jira (v8.20.10#820010)