Commit Graph

54 Commits

Author SHA1 Message Date
akallabeth
6a3564407e
[warnings] fix clang-tidy issues in winpr 2024-08-29 15:20:39 +02:00
akallabeth
d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +01:00
akallabeth
0ba995655d [clang-tidy] cppcoreguidelines-init-variables 2024-02-15 11:49:16 +01:00
akallabeth
43c5289928 Replaced memset/ZeroMemory with initializer
* Addes WINPR_ASSERT on many occations
* Replaced memset with array initializer
* Replaced ZeroMemory with array initializer
2022-10-14 12:11:01 +02:00
David Fort
c5c2e37f6d
More winpr fixes (#8255)
* Fix build with mingw

4a71cab2e7 broke wf_events.c.
The drive channel was not building because of missing definitions.

* winpr: make functions return False when not implemented
2022-09-28 16:07:04 +02:00
David Fort
e944d8d243 winpr: improve WaitForSingleObject and WaitForMultipleObject with processes
This patch improves waiting on process handles:
* under linux we take advantage of pidfd if available, when it can be used it
allows to have one or more process in the objects that are WaitForMultipleObject-ed.
* the patch also make the code honor the timeout parameter during a WaitForSingleObject and
possibly run completion when WaitForSingleObjectEx is executed with alertable set to true
2022-09-26 12:08:00 +02:00
Armin Novak
e1b4b4aee0 Replaced WINPR_HANDLE_DEF with a struct type 2022-04-28 08:42:09 +02:00
akallabeth
752ac3b479
Fix #7793: Do not expose internal input API (#7794)
* Fixed GetFileInformationByHandle initializers

* Fix #7793: Do not expose internal input API

Slow-Path input uses UINT16 for scancodes on wire, but only the
lower byte is actually used. (the extended fields are sent in
keyboardFlags field)
Hide this implementation detail and adjust the API to use UINT8
for the code instead just like the corresponding Fast-Path PDU

* Added a warning for problematic slow path keyCodes
2022-04-13 09:34:05 +02:00
Armin Novak
6ed50b4b1d Refactored WinPR includes 2022-03-03 11:26:48 +01:00
Armin Novak
ed9cc8c1cc Removed heap module from WinPR 2021-12-23 14:27:12 +01:00
Armin Novak
1af7ef2f1b Fixed compilation warnings and typos 2021-06-16 15:21:56 +02:00
akallabeth
6b36c6d417
Replace fopen and path functions with wrappers (#7043)
Functions like fopen, PathFileExists, PathMakePath need to call
the wide character versions on windows for utf-8 support.
2021-05-31 11:42:03 +02:00
akallabeth
e2fd9db0b5 Added const to function arguments 2021-02-17 11:29:56 +01:00
Armin Novak
7c243da6e1 Remove symbols exported by accident. 2019-12-02 10:57:31 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Armin Novak
86f08981ef Fixed warnings of uninitialized struct values. 2018-10-24 13:25:18 +02:00
Armin Novak
09d43a66f4 Fixed tests and dead store warnings. 2017-03-28 16:49:56 +02:00
Armin Novak
99c45405cb Fixed GetEnvironmentVariable. 2017-03-03 12:43:00 +01:00
Bernhard Miklautz
c70559d128 winpr API: add EnvironmentBlockToEnvpA
* expose EnvironmentBlockToEnvpA
* cleanup includes in process.c
* removed unused "flag" variable in _CreateProcessExA
* make ProcessHandleCloseHandle static
2015-10-23 18:38:42 +02:00
Bernhard Miklautz
72f13aeacb CreateProcess: add stdin/out/err redirection
When launching a new process stdin/stdout/stderr can be redirected by
passing the corresponding HANDLEs in the passed lpStartupInfo structure.
This is required for example if a pipe should be used as stdin/stdout.

If set in lpStartupInfo the file descriptor of the passed handle is
now used. The test was updated accordingly.
2015-08-28 10:41:23 +02:00
Bernhard Miklautz
c7adb569ff CreateProcess: fix setting of default handler
If SA_SIGINFO isn't set in the flags sa_handler is used
instead of sa_sigaction.

This fixes also the compiler warning:

FreeRDP/winpr/libwinpr/thread/process.c: In function ‘_CreateProcessExA’:
FreeRDP/winpr/libwinpr/thread/process.c:282:20: warning: assignment from
       incompatible pointer type [enabled by default]
2015-07-02 12:25:48 +02:00
Bernhard Miklautz
be53e9e029 CreateProcess: two fixes
* change to lpCurrentDirectory if set even if no token was supplied
* fix wrong check - add missing !

This was part of akallabeth's PR #2714.
2015-07-02 12:05:46 +02:00
Norbert Federa
c84e90bf06 winpr: fix CreateProcess signal handler issues
The calling thread of CreateProcess can be in any library and
can have arbitrary signal masks and handlers.

We now save the caller's mask and  block all signals before forking.
After fork:
- child resets the handlers and unblocks all signals.
- parent restores the caller's original signal mask.
2015-07-02 11:28:06 +02:00
Norbert Federa
1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02: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
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
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
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
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
Armin Novak
7b9bf1a504 Fixed uninitialized variable. 2014-11-16 17:02:36 +01:00
Armin Novak
53450b6423 Checking setgid before calling initgroups now. 2014-11-16 15:59:26 +01: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
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
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
56672023db libwinpr-thread: start implementing CommandLineToArgv 2013-09-21 17:16:49 -04:00