itsankoff
da0fc1a6d8
GUACAMOLE-424: Add doc comment for guac_common_cursor_alloc
2017-11-13 14:49:44 +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
Michael Jumper
012a3497eb
GUACAMOLE-411: Merge changes fully initializing CMSG buffer prior to use.
2017-10-14 17:50:47 -07:00
Nick Couchman
caedf26a06
GUACAMOLE-296: Break out WINPR libs into their own variable.
2017-10-13 21:25:32 -04:00
David Fort
bb527f30f8
GUACAMOLE-402: fix out-of-tree build
...
Use $(srcdir) in places were it's needed, so that an out-of-tree build works.
2017-10-12 15:11:27 +02:00
Jukka-Pekka Virtanen
c8eaa91ad3
GUACAMOLE-411: Fixed using uninitialized values in guacd_send_fd
2017-10-10 12:41:19 +03:00
Michael Jumper
d35cc7a83e
GUACAMOLE-400: Merge changes correcting segfault when an SSH private key cannot be imported.
2017-09-29 12:05:56 -07:00
sanhex
3c7a09f52b
GUACAMOLE-400: Fix guacd crash when ssh key fails
...
Root Cause:
In the ssh library of guacd, function ssh_client_thread(), when guac_ssh_get_user() fails to load private key for ssh authentication, it will return NULL. In this case, the subsequent call to guac_common_ssh_create_session() with parameter 'user=0x0' will cause guacd crash in function guac_common_ssh_authenticate() by accessing 'user->username'.
Solution:
- Update the comment of function guac_ssh_get_user() to document that NULL will be returned if fails to import key for the user.
- In function ssh_client_thread(), verify the return of guac_ssh_get_user(). If ssh_client->user is NULL, return NULL.
Test:
- Configured a ssh app with an encrypted private key and a wrong passphrase.
- Ran the ssh app from web portal and observed guacd crash.
- Applied the fix and reran the ssh app. Observed no crash.
2017-09-29 11:04:48 -07:00
Nick Couchman
9200bc789f
GUACAMOLE-398: Use freeaddrinfo() instead of free() on the linked list.
2017-09-27 13:24:58 -04:00
Nick Couchman
e4dd8de4f1
GUACAMOLE-398: Fix memory leak identified by Coverity in common ssh code.
2017-09-27 13:02:41 -04:00
James
f559701645
GUACAMOLE-396: Fixing ssh socket for IPv6 address
...
Root Cause:
In the ssh library of guacd, the TCP socket for connecting to ssh server is created with AF_INET. So it does not support IPv6 address.
Solution:
When guacd creates the socket for ssh in guac_common_ssh_create_session(), stop using hard coded AF_INET for socket() call, use the address family which is returned from getaddrinfo().
Test:
- Connected successfully via ssh connections with IPv4 and IPv6 hosts.
- No connection error in guacd logs.
- Simulated a connection failure with specifying a ssh server which does not exist. guacd worked well in this case.
2017-09-26 17:19:18 -07:00
Ilya Shipitsin
d2102e5705
GUACAMOLE-391: resolve low impact memory leak
2017-09-24 13:42:59 +05:00
Ilya Shipitsin
fc071fd1af
GUACAMOLE-383: resolve issues identified by cppcheck
...
[src/guacd/conf-file.c:206]: (error) Memory leak: conf
[src/protocols/rdp/rdp_cliprdr.c:205]: (error) Memory leak: output
[src/terminal/display.c:283]: (error) Memory leak: display
[src/terminal/display.c:290]: (error) Memory leak: display
2017-09-20 22:55:58 +05:00
Michael Jumper
b0d9bbc121
GUACAMOLE-279: Add explicit definitions for each human-readable xterm color.
2017-08-13 15:12:05 -07:00
Michael Jumper
27cf97cb9e
GUACAMOLE-279: Handle xterm palette assignments, parsing each color as an X11 color spec.
2017-08-13 15:12:05 -07:00
Nick Couchman
6400af605e
GUACAMOLE-325: Merge restore Windows-compatibility at libguac level.
2017-08-13 14:24:58 -04:00
Michael Jumper
c53575b18c
GUACAMOLE-279: Use guac_terminal_color for color palette assignments.
2017-07-11 08:24:18 -07:00
Michael Jumper
eec3607b16
GUACAMOLE-279: Migrate to mutable terminal color palette.
2017-07-10 14:08:21 -07:00
Michael Jumper
d3c5a8a050
GUACAMOLE-325: Add Winsock-specific guac_socket implementation.
2017-07-05 20:55:03 -07:00
Michael Jumper
eb73563445
GUACAMOLE-325: Explicitly check for Winsock.
2017-07-05 20:55:02 -07:00
Michael Jumper
d85f61deaf
GUACAMOLE-325: Do not lock files on Windows. Use Windows-specific _mkdir() call where necessary.
2017-07-05 20:55:02 -07:00
Michael Jumper
1c404d1881
GUACAMOLE-325: Use recv() on Windows platforms.
2017-07-05 20:55:02 -07:00
Michael Jumper
944857d130
GUACAMOLE-325: Include -no-undefined in libguac libtool flags.
2017-07-05 20:55:02 -07:00
Michael Jumper
7b8d250bd5
GUACAMOLE-325: Explicitly check for libdl, using it if provided and warning if both libdl and dlopen() are absent.
2017-07-05 20:55:02 -07:00
Michael Jumper
9dcddd1947
GUACAMOLE-325: Use select() if poll() is unavailable.
2017-07-05 20:55:02 -07:00
James Muehlner
6236eb8f98
GUACAMOLE-337: Merge move of libguacd code into public libguac API.
2017-07-05 19:56:06 -07:00
Michael Jumper
b608d2266b
GUACAMOLE-337: Clarify behavior of guac_user_handle_connection().
2017-07-05 19:54:06 -07:00
Michael Jumper
7857dd0a9a
GUACAMOLE-303: Ensure there is always space for the null terminator when normalizing.
2017-07-04 12:00:43 -07:00
Michael Jumper
60141175dd
GUACAMOLE-337: Document that socket-ssl.h is not guaranteed to be present.
2017-07-01 18:55:20 -07:00
Michael Jumper
f504b1a5e8
GUACAMOLE-337: Move libguacd functionality into libguac.
2017-07-01 18:50:03 -07:00
Michael Jumper
5b748a4b42
GUACAMOLE-337: Separate definition of guacd read timeout from libguacd.
2017-07-01 18:50:03 -07:00
Michael Jumper
06a5043442
GUACAMOLE-337: Include only *-types.h headers when only types are needed.
2017-07-01 18:50:03 -07:00
Michael Jumper
f311c23ffa
GUACAMOLE-337: Move SSL socket into libguac.
2017-07-01 18:50:03 -07:00
Michael Jumper
78dbf64416
GUACAMOLE-337: Add missing libtool flags for libguacd.
2017-07-01 16:05:17 -07:00
Michael Jumper
3a46fffe44
GUACAMOLE-337: Do not include config.h in libguacd public headers.
2017-07-01 16:05:14 -07:00
Michael Jumper
6c484c1efd
GUACAMOLE-337: Limit public libguacd API to simply user handshake handling and SSL/TLS sockets.
2017-07-01 16:05:12 -07:00
Michael Jumper
7f3b985cc6
GUACAMOLE-337: Install libguacd as a normal library.
2017-07-01 16:05:11 -07:00
Michael Jumper
69d8d87ec9
GUACAMOLE-337: Remove unnecessary include of syslog.h by libguacd.
2017-07-01 16:05:08 -07:00
Michael Jumper
a56a7207ac
GUACAMOLE-337: Remove unnecessary link to libguac-common for libguacd.
2017-07-01 16:04:52 -07:00
Michael Jumper
d51e92eb31
GUACAMOLE-303: Add "sftp-root-directory" parameter to VNC, RDP, and SSH.
2017-06-29 15:48:23 -07:00
Michael Jumper
0474f86c46
GUACAMOLE-303: Extend common SFTP filesystem such that arbitrary directories can be used as the root of the filesystem.
2017-06-29 15:36:10 -07:00
Michael Jumper
e5a1b4d8ae
GUACAMOLE-326: Explicitly deny attempted reads/writes to Windows named data streams (like "foo:Zone.identifier" for the file "foo").
2017-06-26 14:40:32 -07:00
Michael Jumper
d9c1ce7738
GUACAMOLE-203: Merge support for SSH/SFTP connection keep-alive packets.
2017-06-25 12:01:02 -07:00
Nick Couchman
a5efbb5933
GUACAMOLE-203: Fix function prototype to remove const.
2017-06-25 14:56:50 -04:00
Nick Couchman
650f7a0a32
GUACAMOLE-203: if is not a function...
2017-06-25 14:10:42 -04:00
Nick Couchman
041fcc4651
GUACAMOLE-203: Change remaining instances of timer to timeout.
2017-06-25 05:13:22 -04:00
Nick Couchman
711cdd6929
GUACAMOLE-203: Allow keepalive param to be modified inside the function.
2017-06-25 05:13:12 -04:00
Nick Couchman
05dfb1a6ae
GUACAMOLE-203: Deal correctly with negative keepalive values.
2017-06-25 05:10:22 -04:00
Nick Couchman
ed77114038
GUACAMOLE-203: Fix issue using guac_client_log instead of guac_user_log.
2017-06-14 13:01:01 -04:00
Nick Couchman
8c24c77d55
GUACAMOLE-203: Change timer to timeout
2017-06-14 13:00:30 -04:00
Nick Couchman
af4d762147
GUACAMOLE-203: Move warning about minimum alive interval to single place in common code.
2017-06-14 12:49:49 -04:00
Nick Couchman
89b9a905db
GUACAMOLE-203: Tweak warning message sent to users.
2017-06-14 11:11:32 -04:00
Nick Couchman
df718395e8
GUACAMOLE-203: Change alive interval from int to unsigned.
2017-06-14 10:17:28 -04:00
Nick Couchman
193051dfd5
GUACAMOLE-203: Change parameter name for consistency
2017-06-14 08:40:07 -04:00
Nick Couchman
070bd25721
GUACAMOLE-203: if statement style tweak
2017-06-14 08:27:09 -04:00
Michael Jumper
584c108d1a
GUACAMOLE-314: Bump libtool version info (interface added, none changed/removed).
2017-06-01 22:52:12 -07:00
Michael Jumper
57ee384180
GUACAMOLE-314: Bump version numbers to 0.9.13-incubating.
2017-06-01 22:48:02 -07:00
Nick Couchman
03403e3ea5
GUACAMOLE-203: Correct implementation of SSH keepalive option for SFTP connections across all protocols.
2017-05-31 21:03:14 -04:00
Nick Couchman
e7fc8a0d98
GUACAMOLE-203: Expand SSH keepalives to cover SFTP connections for other protocols.
2017-05-31 21:03:09 -04:00
Nick Couchman
9993684205
GUACAMOLE-203: Warn user if they try to enter keepalive value < 2 seconds.
2017-05-31 21:03:06 -04:00
Nick Couchman
1e3d82cc63
GUACAMOLE-203: Update comment for keep alive interval.
2017-05-31 21:03:04 -04:00
Nick Couchman
f693b02e12
GUACAMOLE-203: Tighten up code, implement constant for socket poll timer.
2017-05-31 21:02:59 -04:00
Nick Couchman
75019f5e4b
GUACAMOLE-203: Add a few more comments to code.
2017-05-31 21:02:53 -04:00
Nick Couchman
8ab7e56972
GUACAMOLE-203: Implement keepalive config in SSH connection.
2017-05-31 21:02:50 -04:00
Nick Couchman
f42f05aab7
GUACAMOLE-203: Add option entries for ServerAliveInterval.
2017-05-31 21:02:38 -04:00
Michael Jumper
9da27ad578
GUACAMOLE-280: Ensure bold and half-bright attributes cancel each other out.
2017-05-21 13:48:10 -07:00
Michael Jumper
2146200dfd
GUACAMOLE-280: Add support for faint (low) intensity SGR.
2017-05-21 13:46:21 -07:00
James Muehlner
6d2cfdabf8
GUACAMOLE-306: Merge VNC client null check fix.
2017-05-21 11:20:05 -07:00
Michael Jumper
8024f13458
GUACAMOLE-306: Do not attempt to send VNC events with a non-existent VNC client object.
2017-05-19 14:20:28 -07:00
Michael Jumper
58e26eb312
GUACAMOLE-278: argc value received by 256-color SGR sequence parser must equal the number of remaining argv elements.
2017-04-27 10:15:58 -07:00
James Muehlner
0e5498fc83
GUACAMOLE-278: Merge SGR bright color support for terminal.
2017-04-26 22:13:01 -07:00
Michael Jumper
4b7c679808
GUACAMOLE-265: Set connection name when terminal window title is changed.
2017-04-26 21:19:56 -07:00
James Muehlner
d88b5d1011
GUACAMOLE-278: Merge 256-color support for terminal.
2017-04-26 21:13:51 -07:00
Michael Jumper
2a91e2ff2d
GUACAMOLE-278: Add support for xterm's bright SGR colors (90-97 and 100-107).
2017-04-26 21:06:08 -07:00
Michael Jumper
a04022883c
GUACAMOLE-278: Provide constants defining locations of dark vs. intense colors in 16-color palette.
2017-04-26 21:01:53 -07:00
Michael Jumper
691a3ab840
GUACAMOLE-282: Correct common surface transfer functions to copy/ignore alpha channel as required.
2017-04-24 11:57:12 -07:00
Michael Jumper
10180095d8
GUACAMOLE-278: Handle (but ignore) xterm's 256-color palette redefinition OSC.
2017-04-23 13:59:03 -07:00
Michael Jumper
e4ce7b0eeb
GUACAMOLE-278: Ignore 256-color SGR sequences which contain out-of-range values.
2017-04-23 13:52:08 -07:00
Michael Jumper
19f7424c62
GUACAMOLE-278: Log unhandled/invalid sequences at DEBUG level.
2017-04-23 13:52:07 -07:00
Michael Jumper
87fba523ee
GUACAMOLE-278: Handle xterm 256-color SGR sequences.
2017-04-23 13:24:13 -07:00
Michael Jumper
11bf6f05c4
GUACAMOLE-278: Expand terminal palette to 256 entries. Use xterm colors for entries 16 through 255.
2017-04-23 13:24:04 -07:00
Michael Jumper
eaa71f5717
GUACAMOLE-278: Move terminal palette/color definitions into dedicated files.
2017-04-23 13:23:58 -07:00
Michael Jumper
48fc4afc5b
GUACAMOLE-278: Copy terminal color values rather than referencing only by palette index.
2017-04-23 13:23:48 -07:00
James Muehlner
69caa9936b
GUACAMOLE-40: Merge RD gateway support.
2017-04-20 21:36:44 -07:00
Michael Jumper
228874804e
GUACAMOLE-268: Use 64-bit unsigned integers to represent file size internally (identical to RDPDR).
2017-04-17 11:52:07 -07:00
Michael Jumper
09099050cb
GUACAMOLE-40: Set RD gateway and load balancing settings for FreeRDP where applicable.
2017-04-10 00:13:38 -07:00
Michael Jumper
da8636ef54
GUACAMOLE-40: Add and parse RD gateway connection parameters.
2017-04-09 23:58:11 -07:00
dborth
8833c0dd79
GUACAMOLE-262: set VNC trueColour flag to 1 instead of 255
2017-04-03 09:28:22 -06:00
Michael Jumper
1081131aa5
GUACAMOLE-259: Log server and user frame timing information at TRACE level.
2017-03-31 10:48:58 -07:00
James Muehlner
457c48ec71
GUACAMOLE-259: Merge addition of new TRACE log level.
2017-03-31 10:45:41 -07:00
Michael Jumper
e910dcbfcc
GUACAMOLE-259: Add TRACE log level.
2017-03-30 01:15:51 -07:00
Michael Jumper
61896e829c
GUACAMOLE-257: Set VNC/SSH file upload handlers only if SFTP is enabled.
2017-03-28 10:48:38 -07:00
Michael Jumper
039a1c52e4
GUACAMOLE-239: Merge support for CLOCK_MONOTONIC.
2017-03-23 21:05:49 -07:00
Roman Stoffel
ddc1aa0b5f
GUACAMOLE-239: When available, use CLOCK_MONOTONIC to prevent backwards running time
2017-03-23 23:06:24 +01:00
James Muehlner
516c4a0593
Merge 0.9.12-incubating changes back to master.
2017-03-17 10:43:50 -07:00