Fix unchecked CreateEvent calls and misc fixes
authorNorbert Federa <norbert.federa@thincast.com>
Tue, 28 Apr 2015 15:00:41 +0000 (17:00 +0200)
committerNorbert Federa <norbert.federa@thincast.com>
Wed, 29 Apr 2015 16:18:39 +0000 (18:18 +0200)
commitef1fd12b15a24047d6211091c7d4362f59654cf7
tree36e8b049769cc9f1bf49040f256927cf5755b9cd
parent19dc7b74405631dc097d3675aca80bfd725f87dc
Fix unchecked CreateEvent calls and misc fixes

1)
Added missing checks for CreateEvent which also required the
following related changes:

- changed freerdp_context_new API to BOOL
- changed freerdp_peer_context_new API to BOOL
- changed pRdpClientNew callback to BOOL
- changed pContextNew callback to BOOL
- changed psPeerAccepted callback to BOOL
- changed psPeerContextNew callback to BOOL

2)
Fixed lots of missing alloc and error checks in the
changed code's neighbourhood.

3)
Check freerdp_client_codecs_prepare result to avoid segfaults
caused by using non-initialized codecs.

4)
Fixed deadlocks in x11 caused by missing xf_unlock_x11() calls
in some error handlers

5)
Some fixes in thread pool:
- DEFAULT_POOL assignment did not match TP_POOL definition
- don't free the pool pointer if it points to the static DEFAULT_POOL
- added error handling and cleanup in InitializeThreadpool
54 files changed:
client/Android/FreeRDPCore/jni/android_cliprdr.c
client/Android/FreeRDPCore/jni/android_freerdp.c
client/DirectFB/dfreerdp.c
client/Sample/freerdp.c
client/Wayland/wlfreerdp.c
client/Windows/wf_client.c
client/Windows/wf_cliprdr.c
client/Windows/wf_gdi.c
client/Windows/wf_graphics.c
client/X11/xf_client.c
client/X11/xf_gdi.c
client/X11/xf_gfx.c
client/X11/xf_graphics.c
client/common/client.c
include/freerdp/client.h
include/freerdp/codecs.h
include/freerdp/freerdp.h
include/freerdp/listener.h
include/freerdp/peer.h
libfreerdp/codec/rfx.c
libfreerdp/core/client.c
libfreerdp/core/codecs.c
libfreerdp/core/freerdp.c
libfreerdp/core/listener.c
libfreerdp/core/peer.c
libfreerdp/core/transport.c
libfreerdp/gdi/gdi.c
libfreerdp/gdi/gfx.c
libfreerdp/gdi/graphics.c
server/Mac/mf_peer.c
server/Mac/mf_peer.h
server/Mac/mfreerdp.c
server/Sample/sfreerdp.c
server/Windows/wf_info.c
server/Windows/wf_info.h
server/Windows/wf_peer.c
server/Windows/wf_peer.h
server/shadow/Win/win_rdp.c
server/shadow/shadow.c
server/shadow/shadow_client.c
server/shadow/shadow_client.h
server/shadow/shadow_server.c
server/shadow/shadow_subsystem.c
winpr/libwinpr/comm/test/TestCommMonitor.c
winpr/libwinpr/pipe/test/TestPipeCreateNamedPipe.c
winpr/libwinpr/pipe/test/TestPipeCreateNamedPipeOverlapped.c
winpr/libwinpr/pool/pool.c
winpr/libwinpr/pool/test/TestPoolThread.c
winpr/libwinpr/pool/test/TestPoolWork.c
winpr/libwinpr/smartcard/smartcard_pcsc.c
winpr/libwinpr/synch/test/TestSynchBarrier.c
winpr/libwinpr/synch/test/TestSynchTimerQueue.c
winpr/libwinpr/synch/test/TestSynchWaitableTimerAPC.c
winpr/libwinpr/utils/collections/CountdownEvent.c