Commit Graph

5377 Commits

Author SHA1 Message Date
Kevin Puetz 029ec25e54 ntdll: Don't access empty IMAGE_FILE_IMPORT_DIRECTORY.
Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-24 16:53:52 +01:00
Zebediah Figura 74ec9773dd ntdll: Use a dynamically allocated buffer in find_forwarded_export() if necessary.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50105
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Rémi Bernon 255270373e ntdll: Raise debug exceptions when invalid heap is destroyed.
And when PEB->BeingDebugged is set to 1. Lords Of The Fallen anti-tamper
does this and only continues if a DBG_PRINTEXCEPTION_C is received.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:04 +01:00
Rémi Bernon c5129d6fc0 ntdll: Reimplement DbgPrint* using DBG_PRINTEXCEPTION_C.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:04 +01:00
Rémi Bernon 1425363bbd ntdll/tests: Add tests for DbgPrint* functions.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:04 +01:00
Rémi Bernon ad24187de8 ntdll: Stub ThreadEnableAlignmentFaultFixup info class.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46216
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:04 +01:00
Paul Gofman 03cebb22d8 ntdll: Fix SMT CPU flag reporting.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:04 +01:00
Paul Gofman 2002aa15f4 ntdll: Avoid overwriting parameters with context in call_user_apc_dispatcher() on x86.
Fixes crash in 32 bit kernel32 file test. The crash is not always reproducible
as the issue depends on stack layout.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 21:16:43 +01:00
David Torok 74f95d9ff2 ntdll: Add NtDebugActiveProcess stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47198
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 21:06:18 +01:00
Damjan Jovanovic 2f90b17ab2 ntdll: Document a few other filesystem case-sensitivity cases.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Damjan Jovanovic eba4f333b9 ntdll: Treat smbfs as case-insensitive on FreeBSD.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Damjan Jovanovic 9ba13fbca6 ntdll: Msdosfs was case-insensitive since FreeBSD 8 or even earlier.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Damjan Jovanovic d1c8611886 ntdll: FAT filesystems are called "msdosfs" on FreeBSD >= 5.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Damjan Jovanovic 4e6621f3a6 ntdll: Fix wrong return values in get_dir_case_sensitivity_stat().
It should be returning TRUE (= case sensitive) on failure as case
sensitive is the safe assumption, but some returns are FALSE on
failure and even TRUE when case insensitive. Fix that.

Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Damjan Jovanovic bf8da00ee0 ntdll: Improve character device type detection on FreeBSD and macOS.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 20:15:11 +01:00
Damjan Jovanovic a563f584f5 ntdll: Implement get_thread_times() on FreeBSD.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 20:15:11 +01:00
Brendan Shanks f40195cd92 dbghelp: Use PEB->CloudFileFlags instead of PEB->Reserved for debug base address.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50077
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 22:06:52 +01:00
Zebediah Figura ebd92b980a ntdll: Semi-stub SystemModuleInformationEx.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45666
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-27 09:51:32 +01:00
Zebediah Figura bf9235aa56 ntdll/tests: Add more tests for SystemModuleInformation[Ex].
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-27 09:51:27 +01:00
Zebediah Figura 6257da8b42 ntdll: Don't check "info" for NULL in NtQuerySystemInformation(SystemModuleInformation).
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-27 09:51:25 +01:00
Myah Caron d453db5ba2 ntdll: Stub NtAllocateVirtualMemoryEx.
Signed-off-by: Myah Caron <qsniyg@protonmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:34:19 +01:00
Zebediah Figura ab1469597a ntdll: Stub NtQuerySystemInformation(SystemExtendedProcessInformation).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46870
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:27:44 +01:00
Joachim Priesner e533a26dcf ntdll: Fix read buffer overflow in find_file_in_dir().
Signed-off-by: Joachim Priesner <joachim.priesner@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-22 22:02:03 +02:00
Paul Gofman 36dcb69651 ntdll: Fix xmm registers copy offset in call_consolidate_callback() on x86_64.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50010
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-22 22:02:03 +02:00
Nikolay Sivov d3ce5fff85 ntdll/actctx: Handle empty <dependency> element.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-20 22:54:01 +02:00
Alexandre Julliard 54c31d5332 ntdll: Make NtGetNlsSectionPtr() into a proper Nt syscall.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-15 20:18:01 +02:00
Paul Gofman fa409a91b0 ntdll/tests: Test AVX context with debugger.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:30:05 +02:00
Paul Gofman 4e52f7ca86 ntdll/tests: Test getting and setting AVX registers for the other thread.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:30:05 +02:00
Paul Gofman 419abd49a1 ntdll: Support AVX registers for other thread in Nt{Get|Set}ContextThread().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:30:05 +02:00
Paul Gofman ec1ea1ea1b ntdll: Call FLS callbacks.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:30:05 +02:00
Paul Gofman 7341f4ad1e ntdll: Zero all FLS slots instances in RtlFlsFree().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 20:44:38 +02:00
Paul Gofman 53f7cb3c08 ntdll: Always align stack in call_user_apc_dispatcher() on x86_64.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49860
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 11:31:39 +02:00
Paul Gofman 4039c5ad47 ntdll: Don't use PEB lock for FLS data.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 12:40:30 +02:00
Paul Gofman 87ea7698ab ntdll: Allocate TEB FLS data in LdrInitializeThunk().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 12:40:30 +02:00
Paul Gofman 905deff5da ntdll: Reimplement FLS data management on top of up to date structures.
Win10 18132 introduced increased FLS data limit and entirely changed
underlying structure.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 12:40:29 +02:00
Paul Gofman 36981ad033 ntdll: Introduce RtlProcessFlsData() and use it for FLS data destruction.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 12:40:29 +02:00
Martin Storsjo 0a6e46e436 ntdll: Fix nested exceptions on arm64.
This mirrors ae07938ba6 (from x86_64)
to arm64.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 11:57:05 +02:00
Martin Storsjo b09acd526d ntdll: Clear ExceptionFlags on arm64 after running an exception handler.
This applies the beahviour from a69762541a
(on x86_64) to arm64 as well.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 11:57:03 +02:00
Sven Baars 973b0e1dfc ntdll: Fix a memory leak (Valgrind).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49904
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-05 20:54:23 +02:00
Martin Storsjo dcf3874e00 ntdll: Restore the original Lr value when unwinding through raise_func_trampoline on arm64.
When a signal is raised in a leaf function (that hasn't backed up
the Lr register itself), we need to restore both Pc and Lr separately.
This doesn't seem to be possible via libunwind, so add a special case
unwinding rule for this function.

As we have a special case for the function, we could also just as well
skip normal dwarf unwinding for this function altogether and just
restore the full context from the stack.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-05 12:33:31 +02:00
Martin Storsjo df794f3425 ntdll: Unwind to the LR register if no unwind info is available.
Try to keep the behaviour from ea9f47a767 of erroring out if
unwinding ends up out of bounds (with pc==lr, where setting pc
to lr doesn't progress the unwind), but support unwinding from
functions without unwind info.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-05 12:33:31 +02:00
Paul Gofman defcbc8b97 kernelbase: Move FlsGetValue() implementation to ntdll.RtlFlsGetValue().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-01 11:43:53 +02:00
Paul Gofman e596f4047b kernelbase: Move FlsSetValue() implementation to ntdll.RtlFlsSetValue().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-01 11:43:07 +02:00
Paul Gofman 0627fa9d92 kernelbase: Move FlsFree() implementation to ntdll.RtlFlsFree().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-01 11:43:03 +02:00
Paul Gofman c955eee9e8 kernelbase: Move FlsAlloc() implementation to ntdll.RtlFlsAlloc().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-01 11:42:58 +02:00
Alexandre Julliard 0167e195e9 ntdll: Fix handle/module confusion in Unix module loading.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-30 15:38:08 +02:00
Alexandre Julliard e5c0e8e296 ntdll: Use load_dll() to load kernel32 to support PE format.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 19:38:42 +02:00
Alexandre Julliard 7cec3dc284 ntdll: Use the standard code path to load ntdll.dll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 19:38:42 +02:00
Alexandre Julliard 20e0fd6e99 ntdll: Delay ntdll.dll loading until more initialization is done.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 19:38:42 +02:00
Alexandre Julliard e055a3ee05 configure: Require 64-bit compare-and-swap support from gcc.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49191
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 17:03:57 +02:00