Commit Graph

155 Commits

Author SHA1 Message Date
Emmanuel Ledoux
6f5de27081 winpr-thread:
- added the unit test: TestThreadExitThread
  - fix: ensure thread_list to be up to date before to call ExitThread()
  - possibly resolved: Problems with serial redirection #2389
2015-05-22 18:28:10 +02:00
Marc-André Moreau
b9c1cddc2e Merge pull request #2583 from bceverly/OpenBSD-cleanup
Two minor source code changes to remove warnings
2015-05-21 10:17:54 -04:00
Bryan Everly
a3a3efe31e Fixed mistake with bitwise operator in previous two commits 2015-05-20 12:17:05 -04:00
Bryan Everly
80af54b169 Moved thread code to OpenBSD only 2015-05-20 10:52:24 -04:00
Hardening
f8120919af Add checks for some XXX_New and XXX_Add functions
Based on PR #2616
2015-05-18 11:28:00 +02:00
Norbert Federa
1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02:00
Norbert Federa
c77def3048 Fix unchecked CreateMutex calls 2015-05-07 13:27:49 +02:00
Bryan Everly
9865854f3c Simplified random byte stream generation code to use SSL RAND_bytes() and also eliminated two more compiler warnings. 2015-05-05 12:33:44 -04:00
Bernhard Miklautz
a8c44f15c0 winpr: small fixes and cleanups
Update the pull request and integrate the latest comments and
suggestions.

* TestLibrary*: fix typo in error message
* TestPipeCreateNamedPipeOverlapped: free possibly allocated memory
* smartcard_pcsc.c: format fix
* process.c: add missing NULL check
* MessageQueue.c: delete possibly initialized critical section on error
2015-04-08 11:34:37 +02:00
Bernhard Miklautz
850de59b55 winpr: add checks for *alloc
Add missing checks if memory allocation was successful. Also adapt
caller(s) when possible.
2015-04-08 11:34:37 +02:00
Armin Novak
b3ea02a777 Removed INVALID_HANDLE_VALUE from types not using it. 2015-03-31 15:18:45 +02:00
Armin Novak
afe8bd2a86 Fixed missing checks for invalid handle. 2015-03-31 15:18:45 +02:00
Bernhard Miklautz
1d7b3694a9 Integrate feedback from pull request (#2492)
* shell: add missing NULL checks
* thread: handle case where HAVE_EVENTFD_H isn't defined
* wlog: return NULL instead of 0
* wlog: use g_RootLog instead of WLog_GetRoot
  otherwise a new root might be initialized on uninit
* indentation and style fixes
2015-03-25 17:38:21 +01:00
Bernhard Miklautz
3c7662517c hardening
Start to add missing checks for:
* *alloc
* *_New
2015-03-25 17:38:21 +01:00
David FORT
52bd4469d9 Make handle operations static
This patch moves the handle operations in a static struct.
2015-03-16 10:31:26 +01:00
Armin Novak
9153af6a3e Using new handle cleanup structure 2015-03-11 17:57:01 +01:00
Armin Novak
465d8ec688 Using new handle cleanup structure 2015-03-11 17:57:01 +01:00
Bernhard Miklautz
582856d142 winpr/process: handle pids <= 0
TerminateProcess shouldn't call kill if the PID is <=0 because this has
unwanted effects (and is not what TerminateProcess should do):

* with PID == 0 any process in the same process group gets the signal
  sent
* with PID == -1 *every* processes that the running users has
  permissions to gets the signal sent
* with PID < -1 the process within the same process group and -PID gets
  the signal send

For more details see kill(2).
2015-02-09 14:07:14 +01:00
Emmanuel Ledoux
4aeaffa286 libwinpr: better indentation 2015-01-28 12:43:20 +01:00
Emmanuel Ledoux
ab4a744b08 libwinpr: attempt to fix TerminateThread(...).
The following sequence should not hang forever anymore: TerminateThread(thread, 0); WaitForSingleObject(thread, INFINTE);
2015-01-27 21:05:40 +01:00
Armin Novak
122d1c43f4 Prettiefied WLog messages. 2015-01-20 11:04:23 +01:00
Armin Novak
44904ad5d2 Fixed a race condition at thread creation
The thread structure was incorrectly updated after the thread
function was already running. This caused a race condition with
thread exiting. When the thread function returned before the structure
was correctly updated, the exit routine cleaned up the handle as
it was incorrectly marked not started.
2015-01-16 11:26:31 +01:00
Armin Novak
4d8c91b0fe Fixed missing declarations. 2014-12-07 01:15:49 +01:00
Armin Novak
8a6c4396b2 Fixed memory leak. 2014-12-07 01:04:30 +01:00
Marc-André Moreau
6ccce86140 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	winpr/libwinpr/thread/thread.c
2014-12-03 10:10:50 -05:00
Martin Haimberger
7897de057b fixed compiler warning 2014-12-02 00:36:46 -08:00
Martin Haimberger
fa6d551676 changed processhandle handling to new system 2014-12-02 00:08:10 -08:00
Martin Haimberger
128458d380 fixing memoryleak by introducing a nonehandle
In CreateProcess the non functional thread
handle was leaked.
2014-12-01 23:53:58 -08:00
Marc-André Moreau
0818846d7c winpr: fix build warnings 2014-11-21 15:12:49 -05:00
Marc-André Moreau
871339da88 Merge branch 'master' of github.com:awakecoding/FreeRDP
Conflicts:
	winpr/libwinpr/thread/thread.c
2014-11-20 11:51:18 -05:00
Marc-André Moreau
2afcac7838 libwinpr-thread: fix non-blocking internal pipe-based event on OS X 2014-11-20 11:48:02 -05:00
Armin Novak
7b9bf1a504 Fixed uninitialized variable. 2014-11-16 17:02:36 +01:00
Armin Novak
fb5d20f338 Fixed NULL pointer dereference. 2014-11-16 16:51:04 +01:00
Armin Novak
53450b6423 Checking setgid before calling initgroups now. 2014-11-16 15:59:26 +01:00
Armin Novak
51cb07b0f4 Fixed use after free. 2014-11-16 15:21:13 +01:00
Armin Novak
f5a78d9c98 Fixed use after free. 2014-11-16 14:44:30 +01:00
Armin Novak
2d7311b253 Fixed type of stack trace variables. 2014-11-11 21:00:03 +01:00
Marc-André Moreau
68ee5df7d9 winpr: fix build warnings 2014-11-11 11:21:34 -05:00
Armin Novak
5bf25fd87c Fixed missing includes and typo. 2014-10-27 11:45:39 +01:00
Armin Novak
8f98f28ce8 Fixed merge errors. 2014-10-27 11:39:02 +01:00
Armin Novak
a6eff65259 Fixed ExitThread, now running pthread_exit and setting event. 2014-10-27 11:28:13 +01:00
Armin Novak
02a4d77da1 Setting exited flag in TerminateThread now to allow setting return code. 2014-10-27 11:28:12 +01:00
Armin Novak
7ef2bd3ca0 Added joined flag. 2014-10-27 11:28:12 +01:00
Armin Novak
5122ce939a Added funcion name to debug messages.
Fixed setting of started flag for threads.
pthred_exit now used correct return value argument.
Return value now also set when terminating thread.
2014-10-27 11:23:18 +01:00
Armin Novak
56ae609943 Removed WaitForSingleObject in reset_event, joining thread when not allowed. 2014-10-27 11:23:17 +01:00
Armin Novak
8a352c6f63 Fixed thread cleanup, now saving state of started flag, setting event and
then cleaning up the thread resources.
2014-10-27 11:23:17 +01:00
Armin Novak
f80f5621ac Fixed thread handle cleanup, checking for resource cleanup now before resetting flags. 2014-10-27 11:23:17 +01:00
Armin Novak
8de2868281 Preferring exit code from ExitThread now over thread function return. 2014-10-27 11:23:16 +01:00
Armin Novak
3d7b65a430 Now using thread_launcher function to properly clean up thread resources at exit. 2014-10-27 11:23:15 +01:00
Armin Novak
c304f457cf Implemented thread handling for WaitForMultipleObjects.
Implemented thread specific functions.
2014-10-27 11:23:15 +01:00
Armin Novak
b22b897389 Reformatted changed files. 2014-09-09 16:32:22 +02:00
Armin Novak
7e3a1b3073 Now using macro to generate module specific log tag. 2014-09-09 16:32:04 +02:00
Armin Novak
28ece6bb46 Replaced stdio logging with WLog 2014-09-09 16:31:46 +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
Marc-André Moreau
cd35b2772f libwinpr-thread: fix compilation on Android 2014-05-22 15:32:49 -04:00
Marc-André Moreau
ae6c778eb7 libwinpr-smartcard: modifying threading 2014-05-11 05:23:30 -04:00
Bernhard Miklautz
b817e92e5e cmake: mark required libraries for export 2014-04-23 10:16:02 +02:00
Hardening
1d1844aabd Treat OOM cases 2014-04-09 16:07:06 +02:00
Bernhard Miklautz
24c67267a3 winpr: add cwd support in CreateProcess* 2014-02-13 14:31:11 +01:00
Bernhard Miklautz
204842561b winpr-thread: fixed bugs in _CreateProcessExA
* don't run fork/exec if the command isn't found
* return from forked process with exit
2013-11-21 20:06:21 +01:00
Armin Novak
b34c2d0e1d Removed unneccessary include <spawn.h>, which broke the build. 2013-11-08 10:27:57 +01:00
Bernhard Miklautz
9f42b41f4e winpr/thread: use _strdup instead of strdup 2013-10-31 10:43:59 +01:00
Bernhard Miklautz
e51b9b0c03 winpr-thread: fixed issue with commands starting with / 2013-10-31 10:19:55 +01:00
Marc-André Moreau
55565e056c freerdp: export targets 2013-10-28 23:06:39 -04:00
Marc-André Moreau
723e423799 libwinpr-synch: fix build on Mac OS X 2013-10-25 10:03:57 -04:00
Bernhard Miklautz
5c3ce890b1 winpr-thread: close fds before exec new process
Close all open file handles, except stdion/stdout/stderr before executing a new process
to make sure that no file descriptors leak or kept open.
2013-10-02 17:21:56 +02:00
Marc-André Moreau
8c72211eea libwinpr-thread: fix link libraries 2013-09-25 16:38:41 -04:00
Marc-André Moreau
b3b6ee57f0 libwinpr-thread: add missing link dependencies for tests 2013-09-25 16:26:54 -04:00
Marc-André Moreau
7ec19ac0f2 libwinpr-thread: fix build on Windows 2013-09-25 15:47:18 -04:00
Marc-André Moreau
f6ee26f15a winpr: fix noreturn warnings 2013-09-24 14:35:03 -04:00
Marc-André Moreau
9a124a1d60 libwinpr-thread: initial CreateProcessAsUser implementation 2013-09-24 13:08:29 -04:00
Marc-André Moreau
f363b93819 libwinpr-process: add searching of system path 2013-09-24 11:03:42 -04:00
Marc-André Moreau
4a77f12b32 libwinpr-security: expand stubs 2013-09-24 00:07:48 -04:00
Marc-André Moreau
0506bd1ac6 libwinpr-security: initial stub module 2013-09-23 22:39:28 -04:00
Marc-André Moreau
3d2754e8ed libwinpr-environment: implement required functions for CreateProcess 2013-09-23 14:44:59 -04:00
Marc-André Moreau
8d142eb85f libwinpr-thread: initial CreateProcess() implementation 2013-09-22 17:23:00 -04:00
Marc-André Moreau
bb9db97204 libwinpr-thread: improve CommandLineToArgv completeness 2013-09-21 20:05:14 -04:00
Marc-André Moreau
83e124f909 libwinpr-thread: partial support for character escaping in CommandLineToArgv 2013-09-21 19:49:00 -04:00
Marc-André Moreau
56672023db libwinpr-thread: start implementing CommandLineToArgv 2013-09-21 17:16:49 -04:00
Marc-André Moreau
bb30ceb006 mfreerdp: cleanup 2013-08-09 21:23:08 -04:00
Marc-André Moreau
c0160b8015 libwinpr-handle: reduce usage of unneeded handle management functions 2013-05-16 18:27:26 -04:00
Marc-André Moreau
72e9087d1f winpr: unify handle types 2013-05-16 17:32:58 -04:00
Marc-André Moreau
022ceec22a xfreerdp: split client into executable and library 2013-04-02 16:22:30 -04:00
Marc-André Moreau
d13f89d359 xfreerdp: modify way to return thread exit code 2013-04-02 14:51:12 -04:00
Marc-André Moreau
74bba0e767 libwinpr-pool: improve thread pool API on Linux 2013-01-22 16:19:32 -05:00
Marc-André Moreau
025b5bab68 libwinpr-pool: start implementing scheduling of asynchronous calls 2013-01-21 18:33:00 -05:00
Marc-André Moreau
151c2a63e4 libfreerdp-primitives: fix build on Mac OS X 2013-01-19 20:32:14 -05:00
Marc-André Moreau
5b4aaf276f libfreerdp-core: added reference counter for receive buffers 2013-01-18 13:50:35 -05:00
Marc-André Moreau
7ff2be09b2 libfreerdp-core: more TSG memory cleanup 2012-12-12 22:03:40 -05:00
Marc-André Moreau
e62860ab29 cmake: replace FindOptionalPackage macros with FindFeature macros 2012-11-02 19:27:01 -04:00
Marc-André Moreau
e764c81ad5 freerdp: fix building of libraries for Android 2012-10-13 20:31:01 -04:00
Marc-André Moreau
06fa85f31c cmake: refactoring of MONOLITHIC_BUILD 2012-10-13 17:30:59 -04:00
Marc-André Moreau
40eea7c76b cmake: rename WITH_MONOLITHIC_BUILD to MONOLITHIC_BUILD 2012-10-08 22:55:06 -04:00
Marc-André Moreau
7891e0a765 winpr: stubbed pipe module, added some test stubs 2012-10-07 16:13:30 -04:00
Marc-André Moreau
fbd2f360e9 winpr: fix compilation on Linux 2012-10-05 14:45:54 -04:00
Marc-André Moreau
fcc9f91302 cmake: add support for solution groups 2012-09-30 22:58:59 -04:00
Marc-André Moreau
a11a69c70f channels/rdpdr/disk: replace thread utils by WinPR thread API 2012-09-23 13:54:14 -04:00
Marc-André Moreau
7d7536f649 libwinpr: add module definition files 2012-09-21 13:02:54 -04:00
Marc-André Moreau
403d85f080 cmake: bump soname version to 1.1.0 2012-09-20 20:45:56 -04:00
Marc-André Moreau
9c41865fa7 libwinpr: stubbed a couple more modules of interest 2012-09-19 21:42:46 -04:00