Marc-André Moreau
15d2b35574
Merge pull request #1982 from bmiklautz/feat/read_pdu
...
Transport re-factor and clean up
2014-07-28 16:32:06 -04:00
Bernhard Miklautz
b17045ddd8
fix: typos and formating
2014-07-28 13:12:01 +02:00
Marc-André Moreau
ef04373628
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-07-26 14:43:10 -04:00
Daryl Poe
3794720455
correct Pause key sequence
...
(cherry picked from commit 46a00b5c9e
)
2014-07-25 11:31:50 +02:00
Bernhard Miklautz
bdad9524dc
refactor transport_read_pdu and check_fds
...
transport_check_fds and transport_read_pdu had almost the same
functionality: reading and validating one pdu at a time.
Now transport_read_pdu reads one pdu from the transport layer and verifies
that the pdu data is valid - as before.
transport_read_pdu also ensures that the stream is sealed and
rewound when the pdu is received completely.
transport_check_fds just uses transport_read_pdu and does *not* do
the verification a second time based on the stream.
Besides the clean up this fixes the following problems:
* transport_read always read 4 bytes. Fast-path input synchronize pdus
are only 3 bytes long. In this case on byte got lost in the stream
buffer which lead to "de-synchronization" of server and
client.
* Size check in tpdu_read_connection_confirm - already read bytes
weren't taken into account.
2014-07-24 16:34:59 +02:00
Bernhard Miklautz
47dd22ba87
transport refactor
...
rename transport_read to transport_read_pdu. This name is more
descriptive what the function actually does.
2014-07-24 16:34:59 +02:00
Bernhard Miklautz
2bb0659fb4
core: improve fast-path multifragment handling
...
* make sure fast-path packages are not fragmented if no
multifragment support was announced
* handle special server side case where the multifragment size
received from the client is smaller than one maximum fast-path
PDU size
2014-07-24 16:29:46 +02:00
Benoit LeBlanc
653d52bff3
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-07-18 12:02:52 -04:00
Marc-André Moreau
d8b858811f
shadow: initial windows server-side connectivity
2014-07-17 21:15:22 -04:00
Marc-André Moreau
5d4f28a788
Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow
2014-07-17 17:33:33 -04:00
Daniel Bungert
625f7c3c22
Add arguments for managing tls ciphers & netmon
...
This adds 2 arguments:
/tls-ciphers List of permitted openssl ciphers - see ciphers(1)
/tls-ciphers-netmon Use tls ciphers that netmon can parse
With KB2919355, client/server negotiate the use of
TLS cipher TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
which works fine except that netmon can't parse it.
By adding commandline /tls-ciphers-netmon, we restrict
the available ciphers to a list that netmon can
deal with. Also adds /tls-ciphers, which
accepts a string arg, for further customization.
2014-07-17 06:59:06 -06:00
Norbert Federa
8482eed323
core: addd missing PlaySound server callback
2014-07-16 15:38:10 +02:00
Armin Novak
689902c995
Moved update thread from client to library.
2014-07-14 19:27:50 +02:00
Vic Lee
29cb8680ce
server: allow partial channel read (fix rdpsnd).
2014-07-14 20:00:38 +08:00
Marc-André Moreau
8ae00f7385
shadow: start hooking X11 code as subsystem
2014-07-11 19:30:40 -04:00
Bernhard Miklautz
c99d4648ff
Merge pull request #1950 from hardening/kill_select
...
kill the last remaining select() in libfreerdp
2014-07-11 16:41:31 +02:00
Bernhard Miklautz
39d78ba707
Merge pull request #1954 from nfedera/fix-2014-07-10-01
...
transport_read: ensure stream buf size >= pdu size
2014-07-11 15:08:10 +02:00
Armin Novak
ad3255354d
Added WITH_LIBRARY_VERSIONING, allowing to build shared libraries without
...
SOVERSION information. (required by Android)
2014-07-11 11:53:58 +02:00
Hardening
3fce288c66
Fix unclean SSL disconnection
...
This patch prevent an infinite loop when the remote peer disconnect
the socket without cleanly closing the SSL connection.
2014-07-10 23:35:11 +02:00
Norbert Federa
c206a35c12
transport_read: ensure stream buf size >= pdu size
...
Without this check a simple nc < /dev/urandom server:3389 could
kill the server instantly.
2014-07-10 12:09:48 +02:00
Bernhard Miklautz
6a49bcfe40
winpr: always build "monolitic"
...
winpr is now always build as single library.
The build option MONOLITHIC_BUILD doesn't influence this behavior anymore.
The only exception is winpr-makecert-tool which is still build as extra
library.
This obsoletes complex_libraries for winpr.
2014-07-10 11:10:58 +02:00
Hardening
6223460557
kill the last remaining select() in libfreerdp
2014-07-09 11:28:41 +02:00
Benoît LeBlanc
18eaddc7fe
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
...
# By Marc-André Moreau (20) and others
# Via Mike McDonald (6) and others
* 'master' of git://github.com/awakecoding/FreeRDP: (26 commits)
libfreerdp-codec: fix C++ headers
libfreerdp-codec: fix ClearCodec short vbar cache hit
libfreerdp-codec: improve ClearCodec error checking
libfreerdp-codec: fix ClearCodec RLEX decoding
libfreerdp-codec: ClearCodec fix error codes and wrapping around of cursors
libfreerdp-codec: fix some ClearCodec flag checking
Fixed issue with last merge.
Added #ifdef WITH_OPENH264 ... #endif to appropriate places in the code.
libfreerdp-codec: handle long vbar length mismatch
channels/rdpgfx: add egfx command line options and settings
libfreerdp-codec: reduce number of variables
libfreerdp-codec: improve ClearCodec robustness
libfreerdp-codec: simplify ClearCodec code
Initial implementation of H.264 decoder for MS-RDPEGFX
libfreerdp-codec: improve ClearCodec subcodec xStart, yStart handling
libfreerdp-codec: improve ClearCodec subcodec support
libfreerdp-codec: improve ClearCodec error checking
libfreerdp-codec: more ClearCodec vBar caching
channels/rdpgfx: harden parsing code
libfreerdp-codec: add ClearCodec glyph cache
...
2014-07-08 16:45:59 -04:00
Benoît LeBlanc
84d0089401
Added KeyboardHook to settings
2014-07-08 16:32:28 -04:00
Marc-André Moreau
ac7d23b9a3
libfreerdp-gdi: migrate to _aligned_malloc/_aligned_free
2014-07-08 15:07:19 -04:00
Marc-André Moreau
c16000e67b
Merge branch 'master' of github.com:FreeRDP/FreeRDP into egfx
2014-07-08 12:29:30 -04:00
Marc-André Moreau
a0dad3fa87
Merge branch 'master' of https://github.com/dpoe/FreeRDP into egfx
2014-07-08 12:13:11 -04:00
Hardening
fd7b8170dc
Fix invalid timeout
...
timeout was set to 1000ms while in the old code it was 1000us. As 1ms
seems too small set it to 10ms.
2014-07-07 10:44:57 +02:00
Marc-André Moreau
5c5386fe04
channels/rdpgfx: add egfx command line options and settings
2014-07-03 14:35:03 -04:00
Hardening
542811291c
Use poll() instead of select() when available
...
select() has the major drawback that it cannot handle file descriptor
that are bigger than 1024. This patch makes use of poll() instead of
select() when poll() support is available.
2014-07-03 15:26:49 +02:00
Daryl Poe
fa06452a4b
add YCoCg->RGB and 16-to-32bit SSE
2014-07-02 14:30:04 -06:00
Marc-André Moreau
b60eff8e42
channels/remdesk: start sending authentication data
2014-06-30 12:51:27 -04:00
Marc-André Moreau
af1be38775
client/common: parse and use remote assistance file
2014-06-28 18:33:46 -04:00
Marc-André Moreau
2a82684521
channels: cleanup unused freerdp channels global functions
2014-06-11 16:27:31 -04:00
Armin Novak
15ce8c0552
Updated plugins to use new svc_plugin and OnDataReceived API.
2014-06-11 14:42:32 +02:00
Marc-André Moreau
723e9a171b
libwinpr-sspi: fix server-side NLA
2014-06-10 14:38:17 -04:00
Marc-André Moreau
03cf7933d9
libwinpr-sspi: start implementing and using negotiate sspi module
2014-06-07 16:26:57 -04:00
Marc-André Moreau
a07f616895
libwinpr-sspi: improve link interface
2014-06-07 10:50:51 -04:00
Marc-André Moreau
220f885774
libwinpr-sspi: code hardening
2014-06-06 17:20:34 -04:00
Marc-André Moreau
940e6fbc15
libwinpr-sspi: make native sspi option dynamic
2014-06-06 15:34:12 -04:00
Vic Lee
63a1af4b35
transport: fix incorrect retval that caused unexpected redirect.
2014-06-04 15:57:27 +08:00
Martin Fleisz
d8061d23d6
Merge pull request #1882 from hardening/nla_fix
...
Nla fix
2014-06-04 09:30:34 +02:00
Martin Fleisz
6f1f4be0ae
Merge pull request #1873 from hardening/WTSVirtualChannelWriteCallers
...
Don't use NULL for pWrittenBytes when calling WTSVirtualChannelWrite()
2014-06-03 16:40:05 +02:00
Hardening
183155dbd1
Fix metrics leak
2014-06-03 14:54:56 +02:00
Marc-André Moreau
04968b18c4
libfreerdp-core: replace all OpenSSL built-in BIOs by new full duplex BIOs
2014-06-01 21:37:20 -04:00
Marc-André Moreau
a8be174e03
libfreerdp-core: remove ineffective full duplex locks
2014-06-01 11:20:13 -04:00
Marc-André Moreau
1ac2350ec5
libfreerdp-core: fail more gracefully when transport thread dies
2014-06-01 10:46:43 -04:00
Marc-André Moreau
c5e4c74bb6
libfreerdp-core: fix build on Windows
2014-05-30 15:29:06 -04:00
Marc-André Moreau
98077cfc24
Merge branch 'master' of github.com:FreeRDP/FreeRDP
...
Conflicts:
libfreerdp/core/transport.c
2014-05-30 15:06:07 -04:00
Marc-André Moreau
b1416af362
libfreerdp-core: add locks to disable full duplex BIOs (currently unsafe)
2014-05-30 14:53:10 -04:00
Marc-André Moreau
d2ad5f698b
libfreerdp-core: fix VerifyX509Certificate to make distinction between gateway and direct connection
2014-05-30 14:36:18 -04:00
Marc-André Moreau
709df9aecc
libfreerdp-core: add connection timeout, fix gateway bypass local
2014-05-30 14:03:20 -04:00
Vic Lee
e4e1315131
transport: add another null pointer check.
2014-05-31 01:08:00 +08:00
Marc-André Moreau
629858b676
libfreerdp-core: add gateway-usage-method command line option, avoid resetting BIO flags we shouldn't reset
2014-05-30 12:31:26 -04:00
Vic Lee
a3461cef06
transport: add a null pointer check.
2014-05-30 23:34:04 +08:00
Hardening
07e0eba7db
Check that bpp has reasonable value
...
As bpp is often used for malloc computations, let's check that it has
a reasonable value.
2014-05-29 10:12:02 +02:00
Hardening
61a58532db
Check for bpp > 0
...
Bpp == 0 just makes no sense
2014-05-29 09:24:59 +02:00
Hardening
640b901396
Set checks to be strict and also check xorBpp field
...
This patch:
* renames bpp to xorBpp ;
* changes checks to strict ;
* adds checks on the xorBpp field
2014-05-29 00:12:48 +02:00
Hardening
532c42052a
Fixes for CVE-2014-0250
...
This patch introduce misc checks when receiving pointer updates. We check
that the cursor are in the bounds defined by the spec. We also check that
the announced mask sizes are what they should be.
2014-05-28 23:07:00 +02:00
Hardening
c076ffb020
Don't use NULL for pWrittenBytes when calling WTSVirtualChannelWrite()
...
Nothing in the MSDN API says that setting NULL is safe. And if the
implementation uses WriteFile directly, it crashes.
2014-05-28 17:04:24 +02:00
Marc-André Moreau
18cac3d4dd
libfreerdp-codec: cleanup context state flushing
2014-05-26 12:43:30 -04:00
Marc-André Moreau
830659fc5c
libfreerdp-core: add new protocol metrics module
2014-05-26 12:30:58 -04:00
Marc-André Moreau
8d8e0c24fe
libfreerdp-codec: improve xcrush compressor error checking
2014-05-23 17:38:10 -04:00
Marc-André Moreau
67743b6832
libfreerdp-core: enable RDP6.1 XCrush compression/decompression by default
2014-05-23 14:11:53 -04:00
Marc-André Moreau
e8d3164f99
libfreerdp-core: fix windows build warning
2014-05-22 16:08:10 -04:00
Marc-André Moreau
b24c95ce59
libfreerdp-core: fix tcp_new on Windows
2014-05-22 15:13:00 -04:00
Marc-André Moreau
af4a413287
Merge branch 'non_blocking_writes' of github.com:hardening/FreeRDP into non_blocking_writes
2014-05-22 14:01:44 -04:00
Hardening
3200baca4b
Correctly export ringbuffer function and fix a warning
2014-05-21 22:20:38 +02:00
Hardening
5c9a6408cf
Fixed invalid declaration and missing argument
2014-05-21 19:13:40 +02:00
Hardening
dd6d829550
Allow transport_write calls to be non-blocking
...
This big patch allows to have non-blocking writes. To achieve
this, it slightly changes the way transport is handled. The misc transport
layers are handled with OpenSSL BIOs. In the chain we insert a
bufferedBIO that will bufferize write calls that couldn't be honored.
For an access with Tls security the BIO chain would look like this:
FreeRdp Code ===> SSL bio ===> buffered BIO ===> socket BIO
The buffered BIO will store bytes that couldn't be send because of
blocking write calls.
This patch also rework TSG so that it would look like this in the
case of SSL security with TSG:
(TSG in)
> SSL BIO => buffered BIO ==> socket BIO
/
FreeRdp => SSL BIO => TSG BIO
\
> SSL BIO => buffered BIO ==> socket BIO
(TSG out)
So from the FreeRDP point of view sending something is only BIO_writing
on the frontBio (last BIO on the left).
2014-05-21 17:42:31 +02:00
Hardening
0376dcd065
Fix OOM situation
2014-05-21 17:27:36 +02:00
Hardening
9c18ae5bee
Print function name when emiting an error
2014-05-21 17:27:36 +02:00
Marc-André Moreau
4bac8374de
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-05-21 11:17:58 -04:00
Marc-André Moreau
7113cf2858
Merge pull request #1852 from orosam/auth3fix
...
Fix misplaced sec_trailer in rpc_auth_3 PDU
2014-05-21 11:01:12 -04:00
Marc-André Moreau
6f8fda247b
Merge pull request #1844 from caramorsimon/tokenrouting
...
Test for CRLF (0x0D0A) termination on the routing token
2014-05-21 10:56:56 -04:00
Marc-André Moreau
472c231876
Merge pull request #1826 from Hobby-Student/master
...
fix FreeBSD compile errors
2014-05-21 10:53:47 -04:00
Sandor Oroszi
d447f122c3
libfreerdp-core: fix misplaced sec_trailer in rpc_auth_3 PDU
2014-05-20 17:15:26 +02:00
caramorsimon
8e77192ed8
Test for RoutingTokenLength before checking against termination chars
2014-05-18 21:32:26 +01:00
caramorsimon
a561e246e8
Test for CRLF (0x0D0A) termination on the routing token before trying to add it again
2014-05-16 16:19:22 +01:00
Hardening
9f1d0201ec
Changes for base64
...
This patch changes the prototype for decode_base64 so that the encode / decode
method are consistant (encode(BYTE *) => char* and decode(char*) => BYTE*).
It also does some improvements with unrolling loops so that end conditions are
tested only at the end.
The patch also adds some unitary tests.
Before the patch base64_decode() made valgrind complain about uninitialized
bits, after valgrind is happy and very quiet.
2014-05-11 22:49:10 +02:00
Marc-André Moreau
5e97757939
freerdp: fix improper .rdp file parsing
2014-05-10 17:28:34 -04:00
Marc-André Moreau
b8d60d5715
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-05-10 10:59:56 -04:00
Marc-André Moreau
ee282a931b
freerdp: fix build warnings on Windows
2014-05-10 09:50:36 -04:00
Hardening
e79c6b7d68
Treat OOM in GCC certificates
...
This patch treats OOM cases and do a trivial cleanup
2014-05-09 22:37:47 +02:00
Marc-André Moreau
2b27fd51ad
Merge branch 'master' of github.com:mrthebunny/FreeRDP
2014-05-08 21:15:02 -04:00
Marc-André Moreau
49975d7da5
libfreerdp-core: properly reset internal RDP state on reconnect
2014-05-08 17:22:39 -04:00
Marc-André Moreau
1c081c965f
Merge branch 'xcrush' of github.com:awakecoding/FreeRDP
2014-05-08 16:11:55 -04:00
Marc-André Moreau
b0a9d7d690
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-05-08 16:11:42 -04:00
Marc-André Moreau
c2bdd5d413
Merge pull request #1825 from hardening/compil_warnings
...
Fix some compilation warnings
2014-05-08 16:09:18 -04:00
Marc-André Moreau
8b4b506afd
Merge pull request #1832 from bmiklautz/feat/channel_funcs
...
wtsvc: add extended channel handling functions
2014-05-08 15:58:29 -04:00
Bernhard Miklautz
ddfce695df
wtsvc: use _strnicmp instead of strncasecmp
...
_strnicmp is available for platforms
2014-05-07 20:36:22 +02:00
Bernhard Miklautz
9229a812bc
wtsvc: add extended channel handling functions
2014-05-07 20:20:02 +02:00
Bernhard Miklautz
267d80d0d2
Merge pull request #1830 from hardening/certificate_fix
...
Fix null certificate that is not an error
2014-05-07 16:28:58 +02:00
Hardening
603a6378ff
Fix null certificate that is not an error
2014-05-07 16:12:38 +02:00
Marc-André Moreau
db328a1e93
libfreerdp-codec: initial RDP6.1 XCrush bulk data decompression support
2014-05-05 16:26:31 -04:00
Marc-André Moreau
9162fcc7d8
libfreerdp-codec: start working on XCrush decompressor
2014-05-04 21:50:17 -04:00
Hobby-Student
03315cebe8
FreeBSD compile errors
2014-05-01 15:09:35 +02:00
Marc-André Moreau
5b0822a437
libfreerdp-core: avoid reusing LoadBalanceInfo on reconnection
2014-04-30 17:47:37 -04:00
Benoît LeBlanc
c82ece064c
Merge branch 'master' of https://github.com/mrthebunny/FreeRDP
...
# By Marc-André Moreau
# Via Benoit LeBlanc (1) and Marc-André Moreau (1)
* 'master' of https://github.com/mrthebunny/FreeRDP :
libfreerdp-core: fix potential crash on session redirection failure
2014-04-29 17:34:43 -04:00
Benoît LeBlanc
53694fbeba
settings: GatewayBypassLocal TRUE by default
2014-04-29 17:34:34 -04:00
Hardening
597cba042a
Fix some compilation warnings
2014-04-29 16:02:31 +02:00
Vic Lee
7ed1e8a0f1
drdynvc: fix an incorrect length indicator.
2014-04-29 14:21:37 +08:00
Marc-André Moreau
c2a59c23a7
libfreerdp-core: fix potential crash on session redirection failure
2014-04-28 16:44:52 -04:00
Marc-André Moreau
cadc3b8d3b
Merge pull request #1819 from hardening/orders_micro_fix
...
Fix typo in update_write_4byte_unsigned()
2014-04-27 21:51:13 -04:00
Hardening
c03c1c75f3
Fix typo in update_write_4byte_unsigned()
2014-04-27 23:21:30 +02:00
Zhang Zhaolong
e40c5ce2ce
libfreerdp-core: fix assignment after memory free.
2014-04-27 20:32:52 +08:00
Marc-André Moreau
8c54a436ea
libfreerdp-core: fix compression level
2014-04-26 13:53:28 -04:00
Marc-André Moreau
769502ec72
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-04-26 13:47:01 -04:00
Marc-André Moreau
fb3f5e6bd2
libfreerdp-utils: purge deprecated list utils
2014-04-26 12:31:24 -04:00
Zhang Zhaolong
e64a64dcd6
core: fix memory leak in case of error out.
2014-04-26 13:44:28 +08:00
Zhang Zhaolong
69eee0709d
core: fix memory leak in case of error out.
2014-04-26 12:08:30 +08:00
Zhang Zhaolong
24fce3a749
core: fix memory leak in case of error out.
2014-04-26 12:05:52 +08:00
Zhang Zhaolong
8ce32773f3
core: fix memory leak in case of error out.
2014-04-26 12:00:07 +08:00
Marc-André Moreau
3ee6494d36
libfreerdp-core: cleanup GatewayUsageMethod setting
2014-04-24 17:05:10 -04:00
Benoit LeBlanc
9e859ad11f
rpc_client_stop() : Avoid waiting infinitely for rpc client thread if connection failure occurs while in "synchronous receive" mode.
2014-04-24 14:07:11 -04:00
Bernhard Miklautz
b817e92e5e
cmake: mark required libraries for export
2014-04-23 10:16:02 +02:00
Vic Lee
5391275f66
audin/server: fix server audio input channel.
2014-04-22 19:02:23 +08:00
Marc-André Moreau
13d61f341d
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-04-21 16:28:01 -04:00
Marc-André Moreau
784e9abd79
cmake: improve __FILE__ relative path hack
2014-04-21 14:42:24 -04:00
Marc-André Moreau
a21aed8896
Merge pull request #1803 from hardening/www_authenticate_fix
...
Www authenticate fix
2014-04-21 12:15:35 -04:00
Marc-André Moreau
b15e77c18b
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-04-20 23:23:18 -04:00
Marc-André Moreau
ab7958ffb2
libfreerdp-codec: fix NCrush compressor
2014-04-20 23:19:09 -04:00
Marc-André Moreau
bb656a6e7e
Merge branch 'master' of github.com:awakecoding/FreeRDP into ncrush
...
Conflicts:
libfreerdp/core/bulk.c
2014-04-20 21:59:10 -04:00
Marc-André Moreau
d08b6fe4bd
libfreerdp-codec: fix handling of PACKET_AT_FRONT, PACKET_FLUSHED in MPPC compression
2014-04-20 21:28:09 -04:00
Hardening
4366a2219a
Honor bypass local gateway setting
...
This patch make the bypass local gateway setting works
2014-04-19 23:31:12 +02:00
Hardening
ef38a5e55d
Fix multiple WWW-Authenticate headers
...
This patch fixes the case with the server trying to negociate the authentication
method and returning multiple WWW-Authenticate headers.
2014-04-19 09:14:14 +02:00
Bernhard Miklautz
76b7ecd1b7
core/fastpath: fix compiler warning
2014-04-17 12:16:10 +02:00
Bernhard Miklautz
630cb35aa5
transport: fix variable initialization
...
Fixes possible problem when NLA is enabled and header verification fails.
2014-04-17 12:08:09 +02:00
Hardening
2089eaf0d2
Fix connection when no cookie is given
...
This patch corrects a regression introduced in 2edd8bee12
2014-04-16 17:04:49 +02:00
Marc-André Moreau
09a540b40b
libfreerdp-core: remove old, unused extension framework
2014-04-14 14:49:03 -04:00
Marc-André Moreau
94f2a52196
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2014-04-14 14:17:37 -04:00
Marc-André Moreau
95b4c5619e
Merge pull request #1787 from hardening/oom_checks2
...
Misc fixes to check OOM
2014-04-14 14:19:58 -04:00
Marc-André Moreau
2c752f20fa
Merge pull request #1778 from awakecoding/smartcard
...
Smart Card Complete Overhaul
2014-04-14 14:13:11 -04:00
Benoît LeBlanc
3581d27f08
tcp: (Mac OS X) added setsockopt(SOL_SOCKET, SO_NOSIGPIPE) to prevent the application crashing on a broken socket.
2014-04-10 16:26:44 -04:00
Hardening
2edd8bee12
Misc fixes to check OOM
2014-04-10 21:10:19 +02:00
Norbert Federa
5db9d630de
core/server: only enable activated bitmap codecs
2014-04-10 19:13:47 +02:00
Norbert Federa
210985f99e
core: fix multifragment update capability exchange
2014-04-10 17:22:06 +02:00
Marc-André Moreau
39f04c870e
channels/smartcard: fix some valgrind warnings
2014-04-09 12:28:03 -04:00
Marc-André Moreau
d679932d13
Merge pull request #1775 from maksqwe/license_read_fix
...
fix check for certificate_read_server_certificate()
2014-04-09 11:11:01 -04:00
Marc-André Moreau
4093f1a715
Merge pull request #1782 from hardening/oom_cases
...
Treat OOM cases
2014-04-09 10:39:31 -04:00
Hardening
1d1844aabd
Treat OOM cases
2014-04-09 16:07:06 +02:00
Hardening
4210890acd
Fix corner cases in http parsing
...
This patch adds checks for malloc / strdup, and free all memory
when such call fails.
2014-04-09 15:00:38 +02:00
Maks Naumov
e6d0a3b2a9
remove unneeded check
2014-04-08 22:48:17 +03:00
Bernhard Miklautz
3720e205b4
core: fixed client random size
...
client random must be (bitlen / 8) + 8 - see [MS-RDPBCGR] 5.3.4.1
fixes #1771
2014-04-08 19:38:01 +02:00
Maks Naumov
c230fae097
Make certificate_read_server_certificate() return BOOL
2014-04-08 19:23:06 +03:00
Benoit LeBlanc
7e658b9dc4
Fix windows compilation
2014-04-04 10:11:18 -04:00
Benoit LeBlanc
06c55ff7df
Merge branch 'master' of https://github.com/mrthebunny/FreeRDP
2014-04-04 10:09:00 -04:00
Benoit LeBlanc
6f99f252d9
Fix windows compilation
2014-04-04 10:08:44 -04:00
Norbert Federa
4e2b696221
libfreerdp-core: fix transport_check_fds
...
This patch fixes an issue with hung clients connected to FreeRDP server:
- Removed the completely useless inner while loop which used the transport
receive buffer stream position as break contition: The transport receive
buffer stream is replaced after each iteration of this loop with a fresh
instance from a pool which has the position set to 0. Thus it was
technically impossible that this loop would ever be run twice.
- We must not always return if transport_read_nonblocking returns 0:
transport_read_nonblocking() is also called in transport_write() and
therefore it is possible that the stream position of the transport
receive buffer is already > 0 when entering transport_check_fds.
2014-04-03 21:42:32 +02:00
Bernhard Miklautz
16bc9f4bd1
sec-rdp: fixed cleanup in key error case
2014-04-03 12:18:08 +02:00
Bernhard Miklautz
21c425b79c
sec-rdp: limit server side key size to 2048 bit
...
Current code doesn't handle keys > 2048 bit properly in multiple places.
To prevent problems make sure that no larger keys are used for now.
2014-04-03 11:50:06 +02:00
Bernhard Miklautz
9436d64ff5
sec-rdp: fixed *_establish_keys for keys > 256 bit
2014-04-03 11:36:51 +02:00
Marc-André Moreau
500acb3a20
Merge pull request #1766 from nfedera/fix-2014-04-02-02
...
libfreerdp-core: fix disconnect reason
2014-04-02 09:20:28 -04:00
Norbert Federa
68db82f7d1
libfreerdp-core: fix disconnect reason
2014-04-02 14:43:47 +02:00
Norbert Federa
18cb418c81
core: FIPS for fastpath and RDP security fixes
...
- fixed invalid stream position if extEncryptionMethods is not used
- enabled 56bit rdp security method
- fixed entropy reduction of the keys for 40 bit and 56 bit
- added rdp security incl. FIPS for fastpath output
- added FIPS encryption to fast path input
- fixed FIPS key generation in server mode
- fixed stream length correction in FIPS mode
- added rdp encryption for licensing packets (apparently some clients,
specifically cetsc, require the license packets received from the
server to be encrypted under certain RDP encryption levels)
- replace errnous virtual extended mouse event in focus in event
2014-04-02 14:17:39 +02:00
Marc-André Moreau
56d75ac892
libfreerdp-core: fix non-C89 declaration
2014-04-01 20:56:34 -04:00
Marc-André Moreau
feea87b42f
libfreerdp-crypto: make distinction between TLS connection error and user cancellation
2014-04-01 16:23:27 -04:00
Marc-André Moreau
305852b010
libfreerdp-core: start integrating NCrush compressor
2014-03-31 14:48:47 -04:00
Marc-André Moreau
2524cebfa2
Merge branch 'master' of github.com:mrthebunny/FreeRDP
2014-03-28 12:30:24 -04:00
Benoît LeBlanc
6d55d8859d
Added context error codes
2014-03-28 12:23:16 -04:00
Marc-André Moreau
a8551f4008
libfreerdp-core: fix potential issue while reading packet headers
2014-03-27 17:09:26 -04:00
Marc-André Moreau
3f07157637
libfreerdp-core: enforce checking of NLA packets in transport only when expecting NLA
2014-03-27 14:24:15 -04:00
Marc-André Moreau
75302e2cc2
libfreerdp-core: don't set connectErrorCode when there is no error
2014-03-27 11:50:56 -04:00
Marc-André Moreau
797d326252
libfreerdp-core: fix handling of uncompressed packets
2014-03-26 09:16:28 -04:00
Hardening
ac7507ab8d
Adds some check to treat OOM problems + RDP security fix
...
Malloc can fail so it will, this patch adds some check in some places
where malloc/strdup results were not checked.
This patch also contains a server side fix for RDP security (credit to nfedera).
The signature len was badly set in the GCC packet. And some other RDP security
oriented fixes are also there.
2014-03-25 23:13:08 +01:00
Marc-André Moreau
14b75d1b27
libfreerdp-core: fix build warnings and windows broken build
2014-03-25 15:19:52 -04:00
Marc-André Moreau
65ff98bb99
libfreerdp-core: fix /multimon and /span options
2014-03-25 14:39:21 -04:00
Marc-André Moreau
4c920506ed
libfreerdp-core: add 'Bypass RD Gateway server for local addresses' feature
2014-03-24 14:44:18 -04:00
Marc-André Moreau
fb12998957
libfreerdp-core: fix context error handling
2014-03-22 17:42:44 -04:00
Benoit LeBlanc
21b5f0e418
Fix windows build
2014-03-21 15:25:00 -04:00
Benoît LeBlanc
4bed3d082f
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-03-21 14:03:38 -04:00
Benoît LeBlanc
3e1dfc6311
updated context error messages. utility macros for getting error code CLASS/TYPE
2014-03-21 13:45:43 -04:00
Marc-André Moreau
23cb561a53
libfreerdp-core: fix RDP4 compression
2014-03-21 10:27:11 -04:00
Benoît LeBlanc
d1b9565f51
Added context-specific error management.
...
Added error codes to replace connectErrorCode.
2014-03-20 18:19:54 -04:00
Marc-André Moreau
40ffe51aef
Merge branch 'master' of github.com:mrthebunny/FreeRDP
2014-03-20 09:49:51 -04:00
Norbert Federa
52f06250fd
libfreerdp-core: fixed transport
...
Commit 1daea0d0dc
introduced an
error: If transport_read_nonblocking returns 0 we may not return
without checking if the ReceiveBuffer is empty.
2014-03-19 21:06:21 +01:00
Benoit LeBlanc
27c753f80c
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-03-19 11:53:10 -04:00
Norbert Federa
313c97df88
capabilities: fix MultifragMaxRequestSize parsing
...
- no reason to limit this to RemoteFX
- network and settings values were incorrectly compared
2014-03-19 10:52:05 +01:00
Benoît LeBlanc
af28a35e0d
Transport: closing transport before sending stop event caused SSL errors when stopping the session.
2014-03-18 15:27:23 -04:00
Marc-André Moreau
5a0f36b0ce
libfreerdp-core: enable RDP6 bulk compression by default
2014-03-17 10:26:22 -04:00
Marc-André Moreau
59ff4db1c7
Merge branch 'master' of github.com:awakecoding/FreeRDP into ncrush
2014-03-17 10:18:56 -04:00
Marc-André Moreau
1184c3c835
Merge pull request #1740 from bmiklautz/bm/fix/msg_channel_id
...
only process msg channel pdu if msg channel is set
2014-03-17 10:18:27 -04:00
Marc-André Moreau
b23f0dba7f
Merge pull request #1730 from divineforge/master
...
Fixing the E_PROXY_RAP_ACCESSDENIED error
2014-03-17 10:04:23 -04:00
Marc-André Moreau
5951a9178c
libfreerdp-codec: remove old NCrush decompressor
2014-03-16 21:16:53 -04:00
Marc-André Moreau
90a135c928
libfreerdp-codec: cleanup new NCrush decompressor
2014-03-16 21:10:57 -04:00
Marc-André Moreau
698cae2052
libfreerdp-codec: start hooking new NCrush decompressor
2014-03-16 20:54:07 -04:00
Bernhard Miklautz
59eadb9213
only process msg channel pdu if msg channel is set
2014-03-14 21:56:10 +01:00
Marc-André Moreau
4d9a3dc218
libfreerdp-core: change internal fastpath utils function declarations
2014-03-12 12:09:14 -04:00
Marc-André Moreau
d95f8638b8
libfreerdp-core: enable MPPC compression by default
2014-03-11 22:55:40 -04:00
Marc-André Moreau
786c2afb56
libfreerdp-core: add bulk compression metrics
2014-03-11 22:52:21 -04:00
Marc-André Moreau
88bebd1f15
libfreerdp-core: add support for RDP4 MPPC compression
2014-03-11 22:33:41 -04:00
Marc-André Moreau
85049299e0
libfreerdp-core: improve MPPC compress/decompress function definitions
2014-03-11 21:42:27 -04:00
Marc-André Moreau
37e037ee71
libfreerdp-core: hook new MPPC compressor successfully
2014-03-11 20:58:35 -04:00
Marc-André Moreau
d52acf9099
libfreerdp-core: start hooking new MPPC compressor
2014-03-11 17:52:34 -04:00
Marc-André Moreau
d2ed1793fa
libfreerdp-core: cleanup fastpath update fragmentation
2014-03-11 17:25:00 -04:00
Marc-André Moreau
affc5d5cc4
libfreerdp-core: further reduce fastpath output sending
2014-03-11 15:35:15 -04:00
Marc-André Moreau
69534400a6
libfreerdp-core: simplify server-side fastpath fragmentation code
2014-03-11 14:43:28 -04:00
Marc-André Moreau
201bbf5df4
Merge branch 'master' of github.com:awakecoding/FreeRDP into mppc
2014-03-11 11:57:01 -04:00
Marc-André Moreau
8b15db3b66
Merge branch 'master' of github.com:awakecoding/FreeRDP
2014-03-11 11:55:49 -04:00
Marc-André Moreau
e0966bbfff
Merge branch 'master' of github.com:mrthebunny/FreeRDP
2014-03-10 23:08:17 -04:00
Marc-André Moreau
98f98c95e9
libfreerdp-codec: remove old MPPC decompressor, fix RDP4 MPPC
2014-03-10 16:19:47 -04:00
Marc-André Moreau
891a10c4f6
libfreerdp-core: hook new MPPC decompressor
2014-03-10 15:57:39 -04:00
Mike McDonald
1daea0d0dc
Modified transport_check_fds to deliver all available PDUs before returning to the caller. This prevents the caller from waiting indefinitely for a socket to get signalled that data is available. It fixes a problem with Microsoft mobile clients connecting to FreeRDS whereby the client places both the MCS Erect Domain and MCS Attach User PDUs into the same ethernet frame. As a result, FreeRDS was only processing the first PDU and then blocking indefinitely waiting for data to arrive on the socket.
2014-03-10 15:35:14 -04:00
Marc-André Moreau
f31676e4e4
libfreerdp-codec: make MPPC compressor produce output identical to Microsoft implementation
2014-03-10 15:06:23 -04:00
Marc-André Moreau
2f756745e9
libfreerdp-core: wrap old MPPC implementation under rdpBulk
2014-03-10 13:15:10 -04:00
Marc-André Moreau
61ecd0ff31
libfreerdp-core: add bulk.c to handle bulk compression in a centralized place
2014-03-10 11:41:10 -04:00
Marc-André Moreau
4310089102
libfreerdp-core: add options for specifying compression level
2014-03-10 11:16:36 -04:00
William Cheong Weelau
bcff95c8ab
Update redirection.c
...
this is related to the changes in connection.c that we should resolve using the FQDN first, where trying an internal get us into RAP Access denied issue.
2014-03-10 11:21:11 +08:00
William Cheong Weelau
4e588ac331
Update connection.c
...
it's better to check and resolve the connection use the FQDN first instead of ip address, due to the issue of getting internal ip address that's getting "Resource Access Denied" response.
2014-03-10 11:18:31 +08:00
Norbert Federa
b39cae3883
Fix handling of "no CAPSET_TYPE_SURFACE_COMMANDS"
...
If CAPSET_TYPE_SURFACE_COMMANDS is not received the SurfaceCommandsEnabled and SurfaceFrameMarkerEnabled settings must be set to FALSE.
2014-03-06 19:16:05 +01:00
Benoît LeBlanc
557c082458
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-03-05 16:35:22 -05:00
Marc-André Moreau
94f99f9afc
Merge pull request #1714 from dbungert/gateway
...
Improved Gateway error handling
2014-03-05 11:28:00 -05:00
Marc-André Moreau
5c635591ee
Merge pull request #1720 from maksqwe/small_fixes
...
libfreerdp: small fixes
2014-03-05 11:26:32 -05:00
Norbert Federa
e74e9887eb
libfreerdp-core/mcs: fixed protocol error+segfault
...
wrong channelcount pointer was referenced in the server
mcs attach user confirm pdu
2014-03-05 15:47:23 +01:00
Maks Naumov
5fda218116
fix "_settings->ClientTimeZone" initialization
2014-03-05 14:24:07 +02:00
Dan Bungert
3b7fd4ceb6
Improved Gateway error handling
...
* General improvements to reduce the case where something bad happens
and RDP hangs around forever without closing.
* Specific error code improvement for CAP related login rejection.
2014-03-04 09:39:39 -07:00
Marc-André Moreau
6695873394
libwinpr-wtsapi: fix multiple inconsistencies with original wtsapi headers
2014-02-28 14:49:57 -05:00
Marc-André Moreau
8510ad3171
freerdp: remove rdpChannel definition in favor of CHANNEL_DEF
2014-02-28 12:07:22 -05:00
Marc-André Moreau
f7bcdad775
Merge branch 'master' of github.com:awakecoding/FreeRDP into channels
2014-02-27 16:55:24 -05:00
Marc-André Moreau
c22490ec3b
xfreerdp: disable auto-reconnect by default, add command-line option
2014-02-27 16:55:07 -05:00
Marc-André Moreau
6e1cdf1b67
libfreerdp-core: expose opaque HANDLE instead of WTSVirtualChannelManager*
2014-02-27 13:30:04 -05:00
Marc-André Moreau
922624f5b4
Merge branch 'master' of github.com:awakecoding/FreeRDP into channels
2014-02-27 12:14:18 -05:00
Marc-André Moreau
f3011492d8
freerdp-server: remove usage of deprecated custom server-side channel API
2014-02-16 23:09:21 -05:00
Marc-André Moreau
9afddf66ad
libfreerdp-core: implement WTSVirtualChannelOpenEx
2014-02-16 23:00:58 -05:00
Marc-André Moreau
3e546a22a1
channels: start migrating existing server-side channels to WTSAPI
2014-02-16 22:07:00 -05:00
Marc-André Moreau
f21faf80ee
libfreerdp-core: add more server-side WTSAPI stubs
2014-02-16 21:19:25 -05:00
Marc-André Moreau
a143a70114
libfreerdp-core: link against libwinpr-wtsapi, dynamically register proper WtsApi implementation in FreeRDS
2014-02-16 20:41:19 -05:00
Marc-André Moreau
1afeb448b4
libfreerdp-core: expose stubbed WtsApi function table from the core
2014-02-16 20:12:45 -05:00
Marc-André Moreau
de3156512c
libfreerdp-core: start including wtsapi.h
2014-02-16 18:02:50 -05:00
Marc-André Moreau
82b922a70d
channels: rename custom CHANNEL_ENTRY_POINTS_EX to CHANNEL_ENTRY_POINTS_FREERDP to fix conflict
2014-02-16 17:38:59 -05:00
Marc-André Moreau
b833073f57
libfreerdp-core: make client virtual channel API prototypes converge towards original API
2014-02-16 17:27:36 -05:00
Marc-André Moreau
bd1ba6e321
libfreerdp-core: get rid of useless wts_data_item in server-side virtual channels
2014-02-15 19:21:41 -05:00
Marc-André Moreau
6a04a7b43e
libfreerdp-core: make use of message queues for server-side virtual channels
2014-02-15 18:41:40 -05:00
Marc-André Moreau
8a81208059
libfreerdp-core: move server-side virtual channels back into core
2014-02-15 17:42:59 -05:00
Marc-André Moreau
db7a9d2e77
libfreerdp-core: start moving internal MCS variables out of rdpSettings*
2014-02-15 16:32:38 -05:00
Marc-André Moreau
4bbd78a80b
libfreerdp-core: remove unnecessary usage of freerdp_channels_data
2014-02-15 15:26:34 -05:00
Marc-André Moreau
7d54669a6e
libfreerdp-core: reduce amount of global table locking in client-side virtual channels
2014-02-15 14:57:10 -05:00
Marc-André Moreau
87be2e0f80
freerdp: add option to disable credentials delegation
2014-02-14 00:43:31 -05:00
Marc-André Moreau
22fbf48109
libwinpr-utils: add synchronized version of HashTable
2014-02-13 22:25:30 -05:00
Marc-André Moreau
c5b14a5e0a
libfreerdp-core: make use of rdpMcs* instead of rdpSettings* in most GCC functions
2014-02-13 17:50:38 -05:00
Marc-André Moreau
e5990fa60c
libfreerdp-core: MCS cleanup, better handling of domain parameters
2014-02-13 17:06:33 -05:00
Marc-André Moreau
8a44b2baa6
libfreerdp-core: add spn-class option
2014-02-12 00:43:02 -05:00
Marc-André Moreau
b665d892a0
libfreerdp-core: move client channels code to separate file
2014-02-11 15:42:28 -05:00
Marc-André Moreau
00ace94b94
libfreerdp-channels: start consolidating channels client code with core
2014-02-10 23:13:29 -05:00
Marc-André Moreau
e968bb584e
xfreerdp: fix build warnings
2014-02-10 22:23:59 -05:00
Marc-André Moreau
cdcd290c44
wfreerdp: fix most build warnings
2014-02-10 22:12:13 -05:00
Benoît LeBlanc
53f2b8511d
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-02-06 12:13:39 -05:00
Marc-André Moreau
e8a9b7ff14
libfreerdp-core: fix ignored port settings for TS Gateway and vmconnect
2014-02-05 11:54:42 -05:00
Benoît LeBlanc
9d929469d2
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
...
# By Marc-André Moreau (27) and others
# Via Marc-André Moreau
* 'master' of git://github.com/awakecoding/FreeRDP: (48 commits)
afreerdp: fix build on Android
libwinpr-wtsapi: include wtsapi32.h on Windows
wfreerdp: fix target exporting
wfreerdp: fix building against OpenSSL with MONOLITHIC_BUILD and shared libraries
wfreerdp: fix test build issues
libwinpr-crypto: implement CryptProtectMemory/CryptUnprotectMemory
libwinpr-memory: add missing definitions
libwinpr-memory: start stubbing
Increased size of stream on GCC conference create request from 512 to 1024. For large numbers of static virtual channels, the stream was being overflowed and was causing crashes.
Fixes to process new command line options (autodetect, heartbeat, multitransport), join the MCS message channel and process auto-detect PDUs during the connection sequence.
wfreerdp: fix build against static openssl library
winpr-hash: fix building against openssl in static mode
libfreerdp-gdi: fix invalidation of region with line drawing
mfreerdp: fix hungarian keyboard '0' and 'i' key inversion
Fixes build issue on Windows
libwinpr-synch: add active/inactive linked list for timer queue
libwinpr-synch: improve timer queue implementation
libwinpr-synch: make use of head's expiration time in timer queue
libwinpr-synch: make use of timespec for timer queue
libwinpr-synch: improve timer queue implementation
...
Conflicts:
client/common/CMakeLists.txt
2014-02-04 11:37:40 -05:00
vworkspace
aca384992f
Increased size of stream on GCC conference create request from 512 to 1024. For large numbers of static virtual channels, the stream was being overflowed and was causing crashes.
2014-01-31 13:52:37 -05:00