Bernhard Miklautz
423b15108d
Merge pull request #2522 from realjiangms/fix_WriteLock_leak
...
transport_write sometimes returns directly without cleanup.
2015-04-08 15:39:10 +02:00
zihao.jiang
a057526f1e
transport_write sometimes returns directly without cleanup. Fix code path to always do cleanup job.
2015-04-08 21:20:07 +08:00
Bernhard Miklautz
74c8400789
coding style fixes
...
Add missing space after if
2015-03-30 17:15:45 +02:00
Bernhard Miklautz
f469e069dc
stream: Stream_Ensure*Capacity: change return type
...
Change the return type of Stream_Ensure*Capacity from void to BOOL to be
able to detect realloc problems easily. Otherwise the only way to detect
this was to check if the capacity after the call was >= the required
size.
In case Stream_Ensure*Capacity fails the old memory is still available
and need to freed outside.
This commit also adds checks to most calls of Stream_Ensure*Capacity to
check if the call was successful.
2015-03-30 16:33:48 +02:00
Bernhard Miklautz
3c7662517c
hardening
...
Start to add missing checks for:
* *alloc
* *_New
2015-03-25 17:38:21 +01:00
Marc-André Moreau
6202f48c12
libfreerdp-core: add configurable TSG/RGB fallback, fix edge cases
2015-03-19 11:44:47 -04:00
Denis Vincent
205ccb70c8
libfreerdp-core: added fallback to RPC.
2015-03-18 16:13:32 -04:00
Marc-André Moreau
dc913d9f2c
libfreerdp-core: fix some RDG valgrind issues
2015-03-17 16:09:17 -04:00
Marc-André Moreau
bdf17450e5
Merge branch 'gateway' of https://github.com/dvincent-devolutions/FreeRDP into gateway
2015-03-17 14:54:04 -04:00
Denis Vincent
144d0d9b23
libfreerdp-core: Initial RDG support.
2015-03-17 14:54:16 -04:00
Zavadovsky Yan
ab8aedd801
libfreerdp-core: add comments for previous fix
2015-02-23 13:57:46 +03:00
Zavadovsky Yan
2be175cec4
libfreerdp-core: fix dead-end state in transport_read_pdu()
...
Situation: we have fragmented TPKT PDU without two last bytes
(or one last byte - for fast-path) in network stack.
First call to transport_read_pdu() works normally, read
available bytes and exit with status 0 - no whole PDU readed.
Before second call this missed bytes arrive.
Optionally with next PDU.
In second call header parsing code unconditionally read this
two bytes(one byte) despite this is not header bytes.
And increase stream position, so stream now contains whole PDU.
This cause (pduLength - Stream_GetPosition(s)) calculation to be 0.
So transport_read_layer_bytes()-->transport_read_layer() return 0
and transport_read_pdu() exits with "not enough data is available"
status.
If next PDU isn't available next calls to transport_read_pdu()
give same result.
If next PDU arrive - (pduLength - Stream_GetPosition(s)) will be
less than 0. Stream position will grow, grow and grow on each call.
And transport_read_pdu() never signals that PDU is readed.
Caught on Android FreeRDP client with high RDP traffic (several MBytes/s).
2015-02-22 00:28:22 +03:00
Marc-André Moreau
44d06888bb
libfreerdp-core: fix BIO leaks
2015-02-18 15:36:57 -05:00
Marc-André Moreau
0e57706de5
libfreerdp-core: cleanup connect error codes, fix Win32 NLA
2015-02-17 21:01:27 -05:00
Marc-André Moreau
668b2c1811
libfreerdp-core: fix tsg buffer flushing
2015-02-17 10:54:39 -05:00
Marc-André Moreau
9c7b7ab561
libfreerdp-core: make NLA event-driven
2015-02-15 16:04:59 -05:00
Marc-André Moreau
eddfee56a3
libfreerdp-core: prepare client-side NLA for event-driven structure
2015-02-15 14:54:10 -05:00
Marc-André Moreau
ab5fdcc3f1
libfreerdp-core: NLA cleanup
2015-02-15 11:10:14 -05:00
Marc-André Moreau
991f7b347d
libfreerdp-core: further abstract multiple connections used internally by tsg from rdpTransport
2015-02-15 10:06:17 -05:00
Marc-André Moreau
edfc5120b7
libfreerdp-core: replace rdpTcp by BufferedSocket BIO
2015-02-14 10:14:13 -05:00
Marc-André Moreau
e904195e49
libfreerdp-core: more rdpTcp refactoring
2015-02-13 16:51:08 -05:00
Marc-André Moreau
c001a69d50
libfreerdp-core: move wait_read/wait_write operations under BIO layer
2015-02-13 15:22:27 -05:00
Marc-André Moreau
b7a619ff8a
libfreerdp-core: move some rdpTcp operations under BIO layer
2015-02-13 14:26:02 -05:00
Marc-André Moreau
69b93c322d
libfreerdp-core: fix transport crash, reduce rdpTcp usage
2015-02-13 09:27:54 -05:00
Marc-André Moreau
3e414f1840
libfreerdp-core: fix server-side transport_attach crash
2015-02-13 08:41:47 -05:00
Marc-André Moreau
889ccefe0d
libfreerdp-core: remove TlsIn/TlsOut from rdpTransport
2015-02-12 16:22:25 -05:00
Marc-André Moreau
70fab69347
libfreerdp-core: gateway connection refactoring
2015-02-11 14:27:29 -05:00
Marc-André Moreau
aa8b843250
libfreerdp-core: move stuff down from transport to tsg layer
2015-02-11 11:57:02 -05:00
Marc-André Moreau
46724b0c75
libfreerdp-core: fix tsg crash on disconnect
2015-02-11 10:57:14 -05:00
David FORT
5c2d5337c0
Fix socket leak when transport is disconnected
2015-02-11 15:47:43 +01:00
Marc-André Moreau
e4f99834d0
libfreerdp-core: make tsg threadless
2015-02-02 11:50:56 -05:00
Marc-André Moreau
bfe1c31529
libfreerdp-core: remove receive queue, make tsg connection sequence more event-driven
2015-02-02 08:19:07 -05:00
Marc-André Moreau
4eeabba933
libfreerdp-core: restructure RPC connection sequence
2015-02-01 18:50:21 -05:00
Marc-André Moreau
90a429e43c
libfreerdp-core: refactor tsg connection sequence towards better state machine usage
2015-02-01 17:55:24 -05:00
Marc-André Moreau
7c6948cd5c
xfreerdp: make use of freerdp_get_event_handles
2015-01-30 09:47:02 -05:00
Marc-André Moreau
3a906caa4a
freerdp: add event handle usage instead of file descriptors
2015-01-29 22:57:58 -05:00
Marc-André Moreau
bb67968141
libfreerdp-core: cleanup transport debug output
2015-01-28 15:37:20 -05:00
Marc-André Moreau
a9df86ab16
libfreerdp-core: update gateway code for Windows
2015-01-28 14:54:03 -05:00
Marc-André Moreau
5bf8b1509e
libfreerdp-core: improve socket BIO handling
2015-01-28 13:46:17 -05:00
Marc-André Moreau
32a991c165
libfreerdp-core: move socket event and nonblock options to socket BIO
2015-01-27 21:18:26 -05:00
Armin Novak
b5281b7877
Fixed broken state reset, now gateway works again.
2015-01-13 16:35:06 +01:00
Armin Novak
5d3091bd1c
Fixed transport cleanup on disconnect.
2015-01-12 13:32:59 +01:00
Marc-André Moreau
9b28562cc1
libfreerdp-core: fix faulty rdpTransport server-side initialization
2014-12-15 10:23:06 -05:00
Marc-André Moreau
e2f377ae11
libfreerdp-core: fix TSG thread shutdown and input freeze problem
2014-12-15 09:42:04 -05:00
Marc-André Moreau
aa23c4eaaa
libfreerdp-core: fix random TS Gateway disconnects with async modes
2014-12-12 09:08:39 -05:00
Marc-André Moreau
d8e10ac04a
freerdp: patch leaks reported by valgrind when using TS Gateway
2014-12-11 11:25:34 -05:00
Mario Lombardo
3c634f91db
Rename tcp-functions as they are conflicting with qemu functions
2014-11-29 21:14:39 +01:00
Bernhard Miklautz
c0525574c8
transport: handle all return values of tsg_read
...
tsg_read can also return 0 which means that no data (complete PDU) is
currently available. This case wasn't handled properly.
Fixes #2056
2014-11-26 19:46:32 +01:00
Marc-André Moreau
ddedc574f3
freerdp: remove tcp, uds utils
2014-11-12 14:06:34 -05:00
Armin Novak
2f519d7f16
Replaced logging in libfreerdp with wlog defines.
2014-09-15 08:48:46 +02:00