Commit Graph

582 Commits

Author SHA1 Message Date
Bolke de Bruin
47e1c5d359 Add description 2020-08-19 12:50:01 +02:00
bolkedebruin
5cd36c511c Set max character buffer len to 512 per MS specification
The MS specs determine that the character buffer lenngths
for usernames, domains, passwords, alternate shells, etc
can be up to 512 characters including the mandatory null
terminator.
2020-08-17 10:35:35 +02:00
Alexandre Quesnel
7e58209b19 Fixing the build with --enable-xrdpdebug and CFLAGS=-Werror -Wall 2020-07-25 23:53:26 +00:00
matt335672
27653f97f2 Code changes for cppcheck 2.1 warnings 2020-06-19 11:07:23 +01:00
metalefty
a618a67d4a
Merge pull request #1520 from qarmin/small_fixes
Small fixes found by static analyzers.
2020-05-08 15:27:18 +09:00
metalefty
cc384de392
Merge pull request #1549 from matt335672/hac425-1
Address possible memory out-of-bounds accesses on connect requests
2020-05-08 15:17:55 +09:00
matt335672
aa0dbbae15 Added CHANNEL_NAME_LEN to ms-rdpbcgr.h 2020-04-27 15:01:56 +01:00
matt335672
da3114007c Address possible memory out-of-bounds accesses 2020-04-15 09:57:05 +01:00
Rafał Mikrut
12c46664a2 Small fixes found by static analyzers. 2020-03-20 11:21:34 +01:00
matt335672
a3d429b4f7 Minor fixes to drive redirection 2020-03-03 16:14:24 +00:00
metalefty
627da8da3e
Merge pull request #1470 from matt335672/rename-includes
Move MS-defined constants into separate includes
2020-01-16 15:01:18 +09:00
okhowang(王沛文)
32ef6ea3dd support mousex button 8/9 2020-01-14 18:04:06 +08:00
Koichiro IWAO
e8c845e78b
common: switch _exit to exit
mentioned in #1472.
2020-01-08 09:21:39 +09:00
Koichiro IWAO
e928d8baf2
common: flush stream in g_deinit()
unless flushing stream before exitting, `xrdp --version | cat` will
show empty output.

Fixes #1471.
2020-01-07 19:24:17 +09:00
matt335672
6f881d47d3 Rationalise ms- constants
Constants from MS documents (MS-RDPBCGR etc) moved out of
common/xrdp_constants.h into includes named after the documents.

Similar includes moved from sesman/chansrv to the common area.
2020-01-06 15:46:37 +00:00
Jay Sorg
0fbbc47092 cleanup refresh rect and check stream bounds 2019-11-07 02:03:57 +00:00
Jay Sorg
ee65ccb31d use address for tcp:// and tcp6:// and vsock:// 2019-07-01 17:56:50 -07:00
Jay Sorg
0bc7803eaa add TCP V4 and V6 only socket functions 2019-06-29 23:59:18 -07:00
Jay Sorg
ecf4acf5f1 work on suppress 2019-04-25 14:54:25 -07:00
Jay Sorg
0ed82f71e8 xrdp: check term event for more responsive shutdown 2019-04-01 23:14:09 -07:00
Koichiro IWAO
062699334e
Fix typo s/BITMACACHE/BITMAPCACHE/ 2018-12-13 17:27:25 +09:00
Koichiro IWAO
0e9e25f100
use MS name for PDU types
RDP_PDU_REDIRECT has been removed as it is not found in MS-RDPBCGR and
not used anywhere.
2018-12-12 17:40:58 +09:00
Koichiro IWAO
b2a7bb0cf0
use MS for orderType constants 2018-12-12 17:40:58 +09:00
Koichiro IWAO
83d3349c5a
add some more constants and use them 2018-11-27 15:08:22 +09:00
Koichiro IWAO
43f6ac0723
use MS name for constants 2018-11-27 15:08:22 +09:00
daixj
fcb1b825c5 neutrinordp: don't enable remote_app if the INFO_RAIL flag is not set 2018-11-23 17:18:26 +08:00
daixj
8da22cf67a Merge branch 'devel' of https://github.com/neutrinolabs/xrdp into devel-mac 2018-10-25 16:19:54 +08:00
Koichiro IWAO
c15cd91198
common: add constants of glyph support level 2018-10-25 16:00:53 +09:00
daixj
b3a1889200 Support Cache Glyph Revison 2, issue #367 2018-10-25 10:34:00 +08:00
Koichiro IWAO
74497752dc
Add TLSv1.3 support
Actually, TLSv1.3 will be enabled without this change if xrdp is compiled
with OpenSSL or alternatives which support TLSv1.3. This commit makes to
enable or disable TLSv1.3 explicitly.  Also, this commit adds a log
"TLSv1.3 enabled by config, but not supported by system OpenSSL". if
xrdp installation doesn't support TLSv1.3. It should be user-friendly.
2018-09-14 11:50:55 +09:00
daixj
88b3c06311 fix issue #1112: set SSL object's read_ahead flag to be 0 2018-05-21 11:08:41 +08:00
metalefty
f52f632e21
Merge pull request #1096 from metalefty/version_info
Show OpenSSL version to --version
2018-04-13 14:49:26 +09:00
Koichiro IWAO
b2b42d28f3
xrdp: add OpenSSL version to --version
While here, cleanup --help,  --version, and when unknown option.
2018-04-10 23:58:31 +09:00
Ben Cohen
3b5b7a5935 UDS file deleted after first connection
If you run xrdp with a Unix Domain Socket (UDS) for the port specified in
/etc/xrdp/xrdp.ini then the first connection succeeds but subsequent
connections fail.  In fact the UDS is deleted from the filesystem as soon
as the first connection is established.

Test case:

1. Edit /etc/xrdp/xrdp.ini to set "port=/var/run/xrdp-local.socket".

2. Restart xrdp.

3. Run the following.  When rdesktop starts up and the logon dialog is
   displayed, press "Cancel".

   sudo socat TCP-LISTEN:12345 UNIX-CONNECT:/var/run/xrdp-local.socket &
   rdesktop localhost:12345

4. Run the following:

    sudo socat TCP-LISTEN:12346 UNIX-CONNECT:/var/run/xrdp-local.socket &
    rdesktop localhost:12346

Expected behaviour: rdesktop starts up and displays the logon dialog.
Observed behaviour: rdesktop exits with "ERROR: Connection closed" and
                    socat exits with "No such file or directory.

This is because in the child process after forking, xrdp_listen_fork()
calls trans_delete() which deletes the UDS.  Simply commenting out the
g_file_delete() and g_free() fixes this, but that isn't a proper solution
because trans_delete() is called from elsewhere where the UDS might no
longer be wanted.

Fix by adding a function trans_delete_from_child() that frees and clears
listen_filename before calling trans_delete(), and call the new function
from xrdp_listen_fork().

(Workaround: set "fork=false" in /etc/xrdp/xrdp.ini, because
trans_delete() is then not called.)
2018-03-27 09:22:49 +03:00
Fernando Seiti Furusato
9f80fcd74e Corrected endianness detection on ppc64el.
In common/arch.h, the endianness detection considers all powerpc
architectures as big endian. Since that is not true for ppc64el, I
added a verification that checks other preprocessor macros, only for
ppc cases.

Signed-off-by: Fernando Seiti Furusato <ferseiti@gmail.com>
2018-03-27 13:45:58 +09:00
speidy
a432969746 common: ssl_calls: add support for OpenSSL>=1.1.0 API for DH keys
also fixes some memory leak introduced in PR#1024.
and adds a check that DH params generated successfully. write a proper log message if not.
2018-03-22 02:20:47 +02:00
speidy
8effc09ab7 common: ssl_calls: check if SSL object created right after its creation. 2018-03-21 08:16:12 +02:00
Koichiro IWAO
e3d0fd6d46
common: temporarily disable DHE
until make it possible to use generated DH parameters per installation.
2018-03-18 21:14:06 +09:00
Koichiro IWAO
1690950cc8
common: regenerate dhparam
Generated by: openssl dhparam -C 2236
2018-03-01 13:48:22 +09:00
Koichiro IWAO
578d23477c
common: obey coding style, remove trailing space 2018-03-01 12:11:52 +09:00
Enrico Tagliavini
70b5adb396 add support for DHE ciphers via compiled in dhparam
make it possible to use regular (non EC) EDH ciphers. To make this
possible a Diffie-Hellman parameter must be passed to the openssl
library. There are a few options possible as described in the manuals at
[1] and [2]. Simplest approach is to generate a DH parameter using
openssl dhparam -C <lenght> and include the code into the application.
The lenght used for this commit is 2236 bits long, which is the longest
possible without risking backward incompatibilities with old systems as
stated in [1]. Newer systems should use ECDH anyway, so it makes sense
to keep this method as compatible with older system as possible.
Paramters longer than 2048 should still be secure enough at the time of
writing.

[1] https://wiki.openssl.org/index.php/Diffie-Hellman_parameters
[2] https://wiki.openssl.org/index.php/Manual:SSL_CTX_set_tmp_dh_callback(3)
2018-03-01 09:57:35 +09:00
Enrico Tagliavini
6cdc0f31b0 enable automatic ECDH when possible (openssl 1.0.2)
Openssl 1.1.0 and later are enabling ECDH automatically, but for older
version it must be enabled explicitly or all Perfect Forward Secrecy
ciphers will be silently ignored. See also [1]. This commit applies the
same fix as found in CnetOS 7 httpd package to enable automatic ECDH as
found in [2].

[1] https://wiki.openssl.org/index.php/Diffie-Hellman_parameters
[2] https://git.centos.org/blob/rpms!httpd.git/c7/SOURCES!httpd-2.4.6-ssl-ecdh-auto.patch
2018-03-01 09:57:35 +09:00
Koichiro IWAO
793a418cfb
common: log what value is set to tls_ciphers
Related to #1033.
2018-02-20 13:13:37 +09:00
Koichiro IWAO
3da4d72323
common: quit using ! as comment out symbol in config files
It is not used anywhere in default config. Some config like
`tls_ciphers` might contain `!` like this:

    tls_ciphers=FIPS:!aNULL:!eNULL

Fixes #1033.
2018-02-20 13:13:34 +09:00
daixj
31ef2552c4 log: revert permission 2018-02-13 16:44:37 +09:00
daixj
ea6bb62410 log: fix fd checking 2018-02-13 16:44:37 +09:00
daixj
551bb185c5 log: remove unused code and fix potential memory leak 2018-02-13 16:44:37 +09:00
Koichiro IWAO
577bd8214f common: add more capset constants
defined at MS-RDPBCGR 2.2.1.13.1.1.1 [1] and sort

[1] https://msdn.microsoft.com/en-us/library/cc240486.aspx
2017-12-01 11:20:42 +09:00
Koichiro IWAO
77a34e0a7b common: express capability set constants in hex
as same as done in  MS-RDPBCGR 2.2.1.13.1.1.1 [1].

[1] https://msdn.microsoft.com/en-us/library/cc240486.aspx
2017-12-01 11:20:42 +09:00
Koichiro IWAO
788ae1467a xrdp_sec: constify color depth value 2017-12-01 11:20:42 +09:00