1037 Commits

Author SHA1 Message Date
Nick Couchman
86dde85b2d GUACAMOLE-269: Comment and spelling updates. 2018-03-24 14:53:22 -04:00
Nick Couchman
a27757682a GUACAMOLE-523: Add default value for client name. 2018-03-08 12:21:04 -05:00
Nick Couchman
b72bcafecd GUACAMOLE-523: Pass configured client name through for redirect messages. 2018-03-08 12:16:31 -05:00
Nick Couchman
45b832bfdc GUACAMOLE-269: Remove all dynamic allocation and simplify implementation. 2018-03-08 11:36:15 -05:00
Nick Couchman
dd7522bd9f GUACAMOLE-269: Get rid of dynamic allocation and properly free up data structures. 2018-03-08 10:48:22 -05:00
Nick Couchman
c3e1b2afef GUACAMOLE-269: Fix minor style issues and update comments. 2018-03-08 10:48:22 -05:00
Nick Couchman
64ca77f3a5 GUACAMOLE-269: Change struct to struct pointer. 2018-03-08 10:48:22 -05:00
Nick Couchman
c286668b79 GUACAMOLE-269: Name functions per Guacamole standards. 2018-03-08 10:48:22 -05:00
Nick Couchman
9bd28321e5 GUACAMOLE-269: Fix up style in comments. 2018-03-08 10:48:21 -05:00
Nick Couchman
fd58d31eea GUACAMOLE-269: Use backspace config to set up tty modes. 2018-03-08 10:48:21 -05:00
Nick Couchman
46e908c06e GUACAMOLE-269: Allow backspace key to be configured. 2018-03-08 10:48:21 -05:00
Nick Couchman
2ace9385a2 GUACAMOLE-269: Add documentation for the defines and variables. 2018-03-08 10:48:21 -05:00
Nick Couchman
5583748b54 GUACAMOLE-269: Move constant declaration to ttymode.c 2018-03-08 10:48:21 -05:00
Nick Couchman
f1bf70a4a2 GUACAMOLE-269: Add basic support for sending TTY mode encoding. 2018-03-08 10:48:21 -05:00
Michael Jumper
5d37530687 GUACAMOLE-517: Add definition for "Print Screen" key to base RDP keymap. 2018-03-06 12:01:50 -08:00
Michael Jumper
bc5b01d4d8 GUACAMOLE-448: Merge support for configuring the level of caching used by RDP. 2018-02-22 00:39:31 -08:00
Nick Couchman
d239207f0f GUACAMOLE-448: Add support for configuring glyph caching. 2018-02-20 15:35:50 -05:00
Michael Jumper
02cd424d18 GUACAMOLE-502: Do not send connection name / hostname (which may be internal information). 2018-02-06 20:12:53 -08:00
Nick Couchman
4d7191147c GUACAMOLE-313: Merge add support for including key events within session recordings. 2018-02-02 16:16:42 -05:00
Nick Couchman
08f854ffef GUACAMOLE-313: Merge add support for logging mouse cursor information. 2018-01-30 14:05:39 -05:00
Michael Jumper
053d9d420c GUACAMOLE-352: Clean up keymap lookup/update logic for sake of verifiability. 2018-01-28 23:09:50 -08:00
Michael Jumper
9a5b5574a8 GUACAMOLE-352: Type using dead keys when necessary and possible. 2018-01-28 01:32:58 -08:00
Michael Jumper
5d56985479 GUACAMOLE-352: Add utility function for checking whether a keysym exists within the current RDP keyboard layout. 2018-01-28 00:56:24 -08:00
Michael Jumper
4fb17d5610 GUACAMOLE-313: Add flags for controlling the contents of session recordings. 2018-01-26 16:42:24 -08:00
Michael Jumper
876516a1fb GUACAMOLE-313: Add support for including key states within session recordings. 2018-01-26 16:42:14 -08:00
Michael Jumper
81a0e66d9f GUACAMOLE-313: Include current button state within mouse update for completeness. 2018-01-26 16:21:53 -08:00
Michael Jumper
df770ae4ea GUACAMOLE-313: Add support for including mouse location within session recordings. 2018-01-26 16:21:28 -08:00
Michael Jumper
b37e73488f GUACAMOLE-313: Provide reference to in-progress screen recording. 2018-01-26 16:21:24 -08:00
Michael Jumper
db85163e20 GUACAMOLE-384: Merge fix for potential segfault if SSH connection is closed while output is still being written to the terminal. 2018-01-23 14:44:47 -08:00
Michael Jumper
822a6c6b9d GUACAMOLE-484: Do not flush frame if connection closed mid-frame. 2018-01-22 12:24:07 -08:00
Michael Jumper
61c16a89d2 GUACAMOLE-484: Always clean up after orderly disconnect. 2018-01-22 12:23:39 -08:00
Michael Jumper
d562cb7648 GUACAMOLE-484: Ensure disconnect reason code is checked for orderly RDP disconnect. 2018-01-22 12:16:09 -08:00
csenel
93b3eebc5d
GUACAMOLE-481: Add Turkish Q keymap for RDP 2018-01-09 10:53:05 +03:00
Nick Couchman
66ffda24f0 GUACAMOLE-448: Add support for configuring bitmap caching. 2018-01-02 18:26:29 -05:00
Michael Jumper
2c12c12850 GUACAMOLE-424: Merge changes addressing potential NULL-pointer dereference in VNC user leave handler. 2017-11-15 07:05:21 -08:00
Michael Jumper
a75bca1e95 GUACAMOLE-273: Merge RDP support for Portuguese Brazilian keyboard. 2017-11-14 17:17:34 -08:00
Frode Langelo
fc599d2aec GUACAMOLE-273: Remove Mac remapping of €. 2017-11-14 20:04:49 +00:00
Michael Jumper
493fa4df16 GUACAMOLE-233: Merge RDP support for Spanish keyboards. 2017-11-14 10:56:28 -08:00
Frode Langelo
fc15850288 GUACAMOLE-233: Add Spanish keymap for RDP. 2017-11-13 22:57:21 +00:00
Frode Langelo
a8174eeac9 GUACAMOLE-273: Fix comment for remapping of €. 2017-11-13 22:52:39 +00:00
Frode Langelo
ed8a32f98b GUACAMOLE-273: Add Brazillian ABNT2 keymap for RDP. 2017-11-13 22:43:42 +00:00
Frode Langelo
625eee0caa GUACAMOLE-434: Add UK English keymap for RDP. 2017-11-13 22:26:29 +00:00
itsankoff
e139b20d12 GUACAMOLE-424: Remove check against NULL for display cursor 2017-11-13 14:51:31 +02:00
Michael Jumper
233f5e27e2 GUACAMOLE-296: Merge changes reverting explicit linking of libwinpr-utils. 2017-11-06 11:24:39 -08:00
Nick Couchman
b9f8e13d80 GUACAMOLE-296: Revert manual addition of winpr-utils library. 2017-11-06 12:20:56 -05:00
itsankoff
bbafa00df0 GUACAMOLE-424: Prevent null pointer dereference for vnc client display and cursor 2017-11-02 19:53:17 +02:00
sanhex
d33bd8deff GUACAMOLE-384: fixing segfault during ssh disconnect
Root Cause:
See the core dump and Valgrind report posted on Jira. guacd was reading a ssh terminal which had been freed. When a ssh connection is terminated, guac_ssh_client_free_handler() will be called from guacd_exec_proc() -> guac_client_free() with pointer client->free_handler. In guac_ssh_client_free_handler(), when ssh_client->term is freed, ssh_client->client_thread may still be using the ssh_client->term. It causes the crash reported in this bug.

The stack trace exposing the problem can be found by running guacd under Valgrind with a ssh test script. The test script repeats doing ssh login and logout for 5000 times.

Solution:
In guac_ssh_client_free_handler(), before calling guac_terminal_free(ssh_client->term), close the stdin pipe of the terminal to stop reading the pipe with guac_terminal_read_stdin() in ssh_input_thread(). So that ssh_input_thread() can be terminated in this case. Call pthread_join() to wait for ssh_client_thread() terminating before freeing the terminal.

Add a new function guac_terminal_stop() to close the pipe and set the fds to invalid (-1). Call it in guac_ssh_client_free_handler() and guac_terminal_free().

Checking the client running state in ssh_input_thread() and ssh_client_thread() to make sure they can be terminated when the client is stopped in guacd_exec_proc() by another thread.

Test:
- Confirmed ssh connection works normally.
- Observed the child process of guacd exits when ssh connection is terminated.
- Reran the ssh test script. Observed no crash.
2017-10-29 18:11:15 -07:00
itsankoff
15f6c4f3dc GUACAMOLE-424: Fix null pointer dereference for vnc client display 2017-10-24 20:21:03 +03:00
Michael Jumper
95be88be19 GUACAMOLE-296: Merge fix for linking issues with FreeRDP 1.1 and guacai (audio input). 2017-10-14 23:45:35 -07:00
Nick Couchman
caedf26a06 GUACAMOLE-296: Break out WINPR libs into their own variable. 2017-10-13 21:25:32 -04:00