Commit Graph

1060 Commits

Author SHA1 Message Date
Marc-André Moreau
00e3533230 libfreerdp-core: expose API for FreeRDS WTSVirtualChannelRead 2014-10-10 17:19:38 -04:00
Marc-André Moreau
11ae267518 libfreerdp-core: expose new API to allow FreeRDS virtual channel hooking 2014-10-10 16:11:42 -04:00
Marc-André Moreau
9ce862edc8 Merge pull request #2135 from erbth/wfreerdp
Added lock key synchronization to wfreerdp
2014-10-09 09:05:58 -04:00
Zhang Zhaolong
3de5c62bf3 fix polyline. 2014-10-09 18:11:38 +08:00
Marc-André Moreau
d6a2f76dd6 libfreerdp-core: server-side virtual channel code style cleanup 2014-10-07 14:56:57 -04:00
erbth
58c392e72e Added lock key synchronization to wfreerdp 2014-10-03 16:27:47 +02:00
Bernhard Miklautz
f40053577f core: add support for set keyboard indicators PDU
Server Set Keyboard Indicators PDU MS-RDPBCGR 2.2.8.2.1

* add server side code
* add support for client callback
2014-10-03 12:10:44 +02:00
Mike McDonald
0357a38e31 Fix to properly negotiate fast-path fragmentation. 2014-09-30 21:12:20 -04:00
Marc-André Moreau
2d40fe7644 libfreerdp-core: fix cloning of LoadBalanceInfo 2014-09-26 15:18:40 -04:00
Marc-André Moreau
9daa8bd36f libfreerdp-gdi: handle egfx desktop resize 2014-09-25 22:08:10 -04:00
Marc-André Moreau
ca1cec64d8 libfreerdp-core: update RDP8 virtual channels 2014-09-25 17:31:05 -04:00
Marc-André Moreau
72fff184dd libfreerdp-core: fix RemoteFX/autodetect incompatibility issue with 2008 R2 2014-09-24 17:23:12 -04:00
Mike McDonald
092855fe99 Fixed gcc_write_conference_create_request to send a constant byte of 0x2A instead of attempting to encode the length of the payload. Sending the length is causing older RDP clients to fail the connection when the payload length of the server data blocks exceeded 256 bytes(which is nearly always the case when RDP security is negotiated). Traces of Windows 2003, 2008R2, 2012, 7, and 8 show that Windows always sends a constant of 0x2A (OCTET STRING) followed by a constant of 0x14 (ConnectGCCPDU). 2014-09-23 22:04:02 -04:00
Marc-André Moreau
af858e8f2a shadow: disable RemoteFX if connection type is not LAN 2014-09-23 18:19:05 -04:00
Marc-André Moreau
7574788ba5 libfreerdp-core: fix GCC core data block negotiation 2014-09-22 11:38:33 -04:00
Marc-André Moreau
c4ad706c34 libfreerdp-core: improve bitmap codec negotiation 2014-09-21 15:40:27 -04:00
Marc-André Moreau
6cb4b59426 libfreerdp-core: fix server-side receiving of X224 disconnect TPDU 2014-09-20 20:19:59 -04:00
Marc-André Moreau
c4588fb14f libfreerdp-core: remove dependency on OPENSSL_Applink on Windows 2014-09-19 17:11:56 -04:00
Marc-André Moreau
72e7507bee Merge branch 'shadow' of github.com:awakecoding/FreeRDP
Conflicts:
	libfreerdp/core/capabilities.c
2014-09-19 14:39:43 -04:00
Marc-André Moreau
d102e746c8 Merge branch 'awakecoding' of github.com:vworkspace/FreeRDP
Conflicts:
	libfreerdp/core/license.c
	libfreerdp/core/nego.c
	winpr/libwinpr/synch/wait.c
2014-09-19 14:38:25 -04:00
Marc-André Moreau
3ddbb128cc libfreerdp-core: add SurfaceFrameBits function to combine frame marker with surface commands 2014-09-19 14:23:17 -04:00
Marc-André Moreau
aa2e6dacbb shadow: fix frame acks + bitmap negotiation 2014-09-19 12:06:12 -04:00
Marc-André Moreau
09fc388e03 shadow: add RefreshRect/SuppressOutput support 2014-09-18 22:18:58 -04:00
Mike McDonald
ad8268d059 Minor fix to server side RDP security negotiation. 2014-09-18 19:44:52 -04:00
Mike McDonald
a228952a69 Modified server code to honor the negotiated setting for SEC_LICENSE_ENCRYPT_SC in the security exchange PDU (which controls the encryption of license PDUs from the server to the client). 2014-09-18 19:43:28 -04:00
Mike McDonald
65d38b54be Modified server code to honor the negotiated settings for 1) SEC_LICENSE_ENCRYPT_SC in the security exchange PDU (which controls the encryption of license PDUs from the server to the client) and 2) ENC_SALTED_CHECKSUM in the bitmap capability set. 2014-09-18 19:38:04 -04:00
Mike McDonald
62f4b0be2e Modified code to honor the negotiated settings for 1) ENC_SALTED_CHECKSUM in the general capability set extraFlags field and 2) DRAW_ALLOW_SKIP_ALPHA in the bitmap capability set drawingFlags field. 2014-09-18 19:31:06 -04:00
Marc-André Moreau
527638c691 shadow: delay subsystem initialization for monitor enumeration 2014-09-18 13:06:49 -04:00
Armin Novak
7ea24ef6cb Decreased logging verbosity. 2014-09-15 19:55:21 +02:00
Armin Novak
eead7733c8 Decreased logging verbosity. 2014-09-15 19:52:33 +02:00
Armin Novak
31c88013ca Decreased logging verbosity. 2014-09-15 19:52:19 +02:00
Armin Novak
7ceddc73e9 Decreased logging verbosity. 2014-09-15 19:51:58 +02:00
Armin Novak
d178e33db5 Decreased logging verbosity. 2014-09-15 19:51:37 +02:00
Armin Novak
2f519d7f16 Replaced logging in libfreerdp with wlog defines. 2014-09-15 08:48:46 +02:00
Marc-André Moreau
f693ff42d7 Merge pull request #2097 from awakecoding/egfx
GDI Bitmap Update Optimization
2014-09-12 15:12:52 -04:00
Marc-André Moreau
198f94fe03 libfreerdp-gdi: add RDP8 graphics pipeline support 2014-09-12 14:57:44 -04:00
Marc-André Moreau
7130b7064e libfreerdp-gdi: fix bitmap caching 2014-09-12 01:03:19 -04:00
Bernhard Miklautz
0313ca3622 libfreerdp: always build "MONOLITHIC"
"libfreerdp" consisted of multiple (small) single libraries. If the cmake
option MONOLITHIC was used only one library was build combining all of
the libfreerdp-* libraries.
The only exceptions to this are libfreerdp-server and libfreerdp-client these
are build as separate libraries.

This commit obsoltes non-monolithic builds and makes monolithic builds
the default. The cmake option MONOLITHIC is also removed.
2014-09-12 00:19:53 +02:00
Martin Fleisz
54b96290c9 Merge branch 'fix_2036' of git://github.com/akallabeth/FreeRDP into akallabeth-fix_2036
Conflicts:
	libfreerdp/codec/test/TestFreeRDPCodecPlanar.c
	libfreerdp/codec/test/TestFreeRDPCodecProgressive.c
	libfreerdp/core/transport.c
	libfreerdp/primitives/test/TestPrimitivesYCbCr.c
2014-09-11 13:03:01 +02:00
Vic Lee
af57056228 transport: exit transport loop when the session is activated. 2014-09-11 14:04:32 -07:00
Marc-André Moreau
c71e4e18a1 libfreerdp-core: refactor codec context management 2014-09-10 00:42:41 -04:00
Armin Novak
6762d73ae1 Fixed winpr_HexDump calls. 2014-09-09 16:33:05 +02:00
Armin Novak
b22b897389 Reformatted changed files. 2014-09-09 16:32:22 +02:00
Armin Novak
f8eae11bf3 Fixed calling of dump functions, updated API 2014-09-09 16:31:46 +02:00
Marc-André Moreau
bd516e04fa libfreerdp-primitives: cleanup YCoCg 2014-09-06 21:13:37 -04:00
Marc-André Moreau
66bbbf0519 libfreerdp-gdi: enable altsec frame markers 2014-09-05 16:06:19 -04:00
Daniel Bungert
27fc3ee64d Fix multiple cases of use of uninitialized vars
* Zeroing xevent helped address some erratic behavior.
* valgrind complained about using xfBitmap uninitialized
  during shutdown, traced it back to the initialization.
  Bitmap_Prototype->size > sizeof(rdpBitmap).
* Early exit from recv_tpkt_pdu is necessary to address
  a shutdown crash - the channelId value was being used
  without being set in the disconnect case.
2014-08-20 03:54:05 -06:00
Marc-André Moreau
1a8c763309 Merge branch 'shadow' of github.com:awakecoding/FreeRDP 2014-08-18 17:06:13 -04:00
Marc-André Moreau
5e177118aa Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-08-18 16:23:45 -04:00
Marc-André Moreau
82a53057a1 Merge pull request #2023 from ptsekov/software-gdi-improvements
Software GDI improvements
2014-08-18 16:22:23 -04:00
Marc-André Moreau
ca90650336 shadow: fix race conditions 2014-08-15 18:12:53 -04:00
Marc-André Moreau
0457a29f57 shadow: fix WDS connectivity 2014-08-15 14:15:53 -04:00
Marc-André Moreau
78d43ced3d Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow 2014-08-15 11:44:07 -04:00
Marc-André Moreau
168d46f253 Merge branch 'awakecoding' of github.com:vworkspace/FreeRDP
Conflicts:
	libfreerdp/core/nego.c
	libfreerdp/core/peer.c
	winpr/libwinpr/synch/wait.c
2014-08-15 11:43:50 -04:00
Marc-André Moreau
158f9856ba shadow: start RDP client backend for WDS 2014-08-14 18:41:22 -04:00
Norbert Federa
3c8700f62d Merge pull request #1963 from akallabeth/async-update-to-lib
Moved update thread from client to library.
2014-08-14 17:46:43 +02:00
Mike McDonald
5906efc5f7 Fixed a FreeRDP server problem which prevented RDP security from being negotiated. 2014-08-13 11:01:43 -04:00
Mike McDonald
37c8ce48e3 Fixed typo in message 2014-08-13 10:14:56 -04:00
Marc-André Moreau
e4a4aa4d3a Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow
Conflicts:
	channels/encomsp/client/encomsp_main.c
	libfreerdp/core/tcp.c
	libfreerdp/crypto/certificate.c
	server/Windows/CMakeLists.txt
	server/X11/xf_cursor.c
	server/X11/xf_input.c
	server/X11/xf_interface.c
	server/X11/xf_monitors.c
	server/X11/xf_peer.c
2014-08-11 19:22:33 -04:00
Marc-André Moreau
87fd839a35 libfreerdp-codec: cleanup and fix __lzcnt on Windows 2014-08-11 18:48:42 -04:00
Marc-André Moreau
7171a0b5c1 libfreerdp-core: fix reconnection using client random 2014-08-11 11:23:23 -04:00
Marc-André Moreau
cff9c16c1e Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	channels/disp/client/disp_main.c
2014-08-11 10:36:07 -04:00
Marc-André Moreau
067da290dd Merge pull request #2027 from akallabeth/winpr-log
Replace stdout and logging defines with WLog, add logcat support
2014-08-11 10:38:28 -04:00
Marc-André Moreau
51ac7fffbd Merge pull request #1993 from bmiklautz/merge/from-stable-1.1
Pick changes from stable-1.1 that are not yet on master
2014-08-11 10:28:10 -04:00
Armin Novak
bcb5f90ee6 Replaced perror with DEBUG_WARN 2014-08-11 09:19:23 +02:00
Armin Novak
b897c6a433 Replaced fprintf(stderr with DEBUG_WARN 2014-08-07 22:20:35 +02:00
Armin Novak
f4c133eaf8 Replaced custom logging mechanism with WLog wrapper. 2014-08-07 16:51:24 +02:00
Pavel Tsekov
c51c5df2ff * include/freerdp/codec/color.h:
(freerdp_color_convert_drawing_order_color_to_gdi_color): Declare new
function.
* libfreerdp/codec/color.c:
(freerdp_color_convert_drawing_order_color_to_gdi_color): Implement.
(freerdp_image_convert_8bpp): Properly use the ARGB32/ABGR32/RGB32/BGR32
macros when converting 8bpp data to 32bpp.
(freerdp_image_convert_32bpp): Fix CLRCONV_ALPHA and CLRCONV_INVERT
processing for 32bpp destination.
(freerdp_mono_image_convert): Use ARGB32/ABGR32 when converting to 32bpp
and CLRCONV_ALPHA is set.
* libfreerdp/core/orders.c: Color data from drawing orders is
interpreted in big endian mode.
* libfreerdp/core/update.c (update_read_palette): Likewise.
* libfreerdp/gdi/16bpp.c (gdi_get_color_16bpp): GDI colors are stored as
RGB now.
* libfreerdp/gdi/32bpp.c (gdi_get_color_32bpp): Likewise.
* libfreerdp/gdi/gdi.c:
Use freerdp_color_convert_drawing_order_color_to_gdi_color() to convert
from drawing order color representation to GDI color representation
troughout.
* libfreerdp/gdi/graphics.c (gdi_Glyph_BeginDraw): Likewise.
(gdi_Glyph_EndDraw): Likewise.
2014-08-07 00:58:58 +03:00
Marc-André Moreau
9838200068 libfreerdp-core: fix unix domain socket support 2014-08-06 12:08:00 -04:00
Marc-André Moreau
3895c930a3 Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow 2014-08-05 09:56:12 -04:00
Marc-André Moreau
85b1d6c167 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	libfreerdp/codec/h264.c
2014-08-05 09:55:54 -04:00
Bernhard Miklautz
a124f6a7c6 fix comment style
// to /* */
2014-07-29 05:22:30 +02:00
Bernhard Miklautz
a9eed46e38 Fix warnings found in Xcode 2014-07-29 05:22:30 +02:00
Bernhard Miklautz
8c318da7b1 fix compiler warnings 2014-07-29 05:22:29 +02:00
Marc-André Moreau
b56eaccdc3 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	client/common/client.c
2014-07-28 16:58:32 -04:00
Marc-André Moreau
42ec69f9c7 Merge branch 'master' of github.com:awakecoding/FreeRDP 2014-07-28 16:47:56 -04:00
Marc-André Moreau
e303c3bd4c channels: cleanup RDP8 virtual channels 2014-07-28 16:47:42 -04:00
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