Commit Graph

117 Commits

Author SHA1 Message Date
Rémi Bernon b922b5aeef kernel32: Write the wait handle before executing the callback.
Otherwise we may execute the callback before the value is actually
returned from RegisterWaitForSingleObject.

Gears Tactics shares a pointer to the returned handle with its callbacks
and calls UnregisterWait from there. This creates a race condition that
sometimes causes a double free.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47843
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-11 22:26:36 +01:00
Alexandre Julliard 0c631ebb23 kernel32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 19:38:42 +02:00
Jacek Caban 99e6bab3ed kernel32: Import FreeConsole from kernelbase.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-01 20:33:07 +02:00
Alexandre Julliard f41e205dfc kernel32: Remove time.c.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 00:14:06 +02:00
Alexandre Julliard e076fff578 kernel32: Use set_ntstatus() in more places.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-26 13:10:34 +02:00
Alexandre Julliard 99027aeaee kernel32: Move GetNamedPipeHandleStateW() implementation to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Alexandre Julliard eac5395fb4 kernel32: Move some misc functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-26 19:36:10 +02:00
Alexandre Julliard 67a9700267 kernel32: Move memory resource functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-08 22:52:09 +02:00
Alexandre Julliard c683e7e5a1 kernel32: Move interlocked functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-08 13:23:49 +02:00
Alexandre Julliard 0116660dd8 kernel32: Move thread functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-08 17:53:35 +02:00
Nikolay Sivov 8f1caca469 kernel32: Remove unused functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-03 10:56:29 +02:00
Alexandre Julliard aa58676ae0 kernel32: Move wait functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 20:42:42 +02:00
Alexandre Julliard bc28ed4c6c kernel32: Move named pipe functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 20:42:42 +02:00
Alexandre Julliard 1834d9e9fe kernel32: Move I/O completion functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:57:16 +02:00
Alexandre Julliard 9585990a46 kernel32: Move condition variable functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:57:13 +02:00
Alexandre Julliard 628d4450cd kernel32: Move file mapping functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:57:09 +02:00
Alexandre Julliard aa7f8e930d kernel32: Move critical section functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:57:06 +02:00
Alexandre Julliard d33d05ce27 kernel32: Move timer queue functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:57:03 +02:00
Alexandre Julliard 8c63d02d5f kernel32: Move waitable timer functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:56:59 +02:00
Alexandre Julliard 591266881c kernel32: Move semaphore functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:56:56 +02:00
Alexandre Julliard 93a5451152 kernel32: Move mutex functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:56:53 +02:00
Alexandre Julliard 558e48aafd kernel32: Move event functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 15:56:49 +02:00
Alexandre Julliard d5a372abbb include: Move inline assembly definitions to a new wine/asm.h header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Nikolay Sivov fe0f8a150f ntdll: Initialize critical section debug info with correct pointer value.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-30 20:08:04 +02:00
Jacek Caban 4fc5aff509 kernel32: Wait on pipe handle in TransactNamedPipe if needed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 19:00:35 +01:00
Jacek Caban b114bd07b1 kernel32: Wait on pipe handle in ConnectNamedPipe if needed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 19:00:35 +01:00
Jacek Caban ee28e0107c server: Return STATUS_BUFFER_OVERFLOW in pipe_end_peek for partial reads in message mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-22 09:53:25 +02:00
Zebediah Figura b79fd400c0 kernel32: Implement GetQueuedCompletionStatusEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43878
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:21 -07:00
Gijs Vermeulen e850369dd8 Revert "kernel32: Add GetQueuedCompletionStatusEx stub.".
This partially reverts commit f1be5c7861.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45891
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-28 15:22:25 +02:00
Gijs Vermeulen f1be5c7861 kernel32: Add GetQueuedCompletionStatusEx stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43878
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-24 22:41:29 +02:00
Jacek Caban 8712db6f55 kernel32: Use proper access flags in CreatePipe.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-21 10:43:35 +02:00
Michael Stefaniuc fe70e0e58f kernel32: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Hans Leidekker f297fd800b kernel32: Add stub implementations of GetNamedPipeClient/ServerSessionId.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 16:23:05 +02:00
Hans Leidekker dedd450689 kernel32: Implement GetNamedPipeClient/ServerProcessId.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 16:23:05 +02:00
Jacek Caban 0ca7c5c4e2 kernel32: Reimplement TransactNamedPipe on top of FSCTL_PIPE_TRANSCEIVE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 16:06:03 +02:00
Hans Leidekker bd7fb5b59e kernel32: Don't return an error from TransactNamedPipe if an overlapped pointer is passed.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-07 11:02:42 -06:00
Hans Leidekker 7a07a5e34f kernel32: Return a non-empty username from GetNamedPipeHandleState.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-07 11:02:38 -06:00
Alexandre Julliard c52e3ff249 kernel32: Move the mapping object functions to sync.c.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-02 10:51:31 +01:00
Alexandre Julliard 808693102e kernel32: Add a helper function to fill object attributes in Create* functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-02 10:41:12 +01:00
Alexandre Julliard a7aa192a78 kernel32: Add a helper function to fill object attributes in Open* functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-02 10:40:41 +01:00
Zebediah Figura d37bfe960f kernel32: Implement bytes left in PeekNamedPipe().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:46:18 +02:00
Jacek Caban e44c0f710b kernel32: Use default buffer size in CreatePipe if 0 was passed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-30 22:06:32 +02:00
Sebastian Lackner c7a9ab82b7 kernel32: NtOpenFile returns STATUS_SUCCESS on success.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 22:24:18 +09:00
Keno Fischer ccc1d346a6 kernel32: Fix RegisterWaitForSingleObject for console handles.
Signed-off-by: Keno Fischer <keno@juliacomputing.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-19 16:14:30 +09:00
Alexandre Julliard 2f514becdb kernel32: Store synchronization objects under the session directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 16:21:24 +09:00
Jacek Caban 8294722142 kernel32: Pass SYNCHRONIZE flag to NtOpenFile.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-30 21:01:59 +09:00
Francois Gouget ecc04f6996 kernel32: Remove unneeded NONAMELESSXXX directives. 2015-03-13 00:28:19 +09:00
Austin English 1ade676968 kernel32: Add a stub for CancelTimerQueueTimer. 2014-10-27 17:35:45 +09:00
Nikolay Sivov 7b7d8374a4 ntdll: NtWaitForMultipleObjects()'s third arguments means 'wait_any', not 'wait_all'. 2014-09-01 13:03:07 +02:00
Sebastian Lackner 55396b7018 kernel32: Implement SetNamedPipeHandleState.
Based on a patch by Adam Martinson.
2014-08-21 18:02:29 +02:00