Commit Graph

269 Commits

Author SHA1 Message Date
Andrew Wesie 06c5a9ab55 ntdll: Read entry point in LdrInitializeThunk.
Overwatch overwrites the PE header contents in a TLS callback. This results in
a crash on wine, because the entry point will be incorrect in start_process.

Signed-off-by: Andrew Wesie <awesie@gmail.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-09 21:37:08 +01:00
Ken Thomases 3d8efb2388 ntdll: For Mac 64-bit, poke NtCurrentTeb()->ThreadLocalStoragePointer to the corresponding offset from %gs.
64-bit Windows apps have hard-coded accesses to %gs:0x58 baked into them.  They
need to find the ThreadLocalStoragePointer there.

Technically, the gsbase register and the memory it points to belong to the
pthread implementation on macOS.  It's used for the pthread TLS implementation.
Slot 11 (offset 0x58) is currently used for the implementation of the ttyname()
system library function.  We do not anticipate that Wine or any of the system
libraries or frameworks it uses will call ttyname().  Furthermore, Apple has
made it so that future releases of macOS will no longer use that slot.  So, we
hijack it for our purposes.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 12:04:10 +09:00
Michael Müller 77be592845 ntdll: Do not sort InMemoryOrderModuleList by memory address.
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 21:23:26 +09:00
Sebastian Lackner b89f88841e ntdll: Skip unused import descriptors when loading libraries.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 12:22:34 +09:00
Jacek Caban 443c2a4719 ntdll: Pass SYNCHRONIZE flag in NtOpenFile and NtCreateFile calls.
This is needed by Office 2013, which hooks those functions and expects
flag to be set.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 20:36:17 +09:00
Alex Henrie 48f3bacb0b ntdll: Avoid double initialization.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 22:25:39 +09:00
Dmitry Timoshkov beeeb2a528 ntdll: Avoid path buffer re-allocation step for common dll name lengths.
For instance c:\windows\system32\advapi32.dll is 33 characters long with
0-terminator.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-10 19:43:11 +09:00
Dmitry Timoshkov 7d2cd2fe61 ntdll: Print process id in the loader log if requested.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-01 23:08:13 +09:00
Dmitry Timoshkov 7386de357f ntdll: Do not fail to relocate an image if the size of relocation block is 0. 2015-08-20 14:32:32 +09:00
Dmitry Timoshkov e67a00b466 ntdll: Separate image relocation from NtMapViewOfSection. 2015-08-18 19:56:48 +09:00
Sebastian Lackner 38076fa633 ntdll: Move cookie initialization code from memory management to loader. 2015-08-12 22:58:28 +09:00
Piotr Caban 18d9ca872a ntdll: Fix modules order in InInitializationOrderModuleList. 2015-08-12 22:54:42 +09:00
Dmitry Timoshkov 21c3724813 ntdll: Cache contents of IMAGE_TLS_DIRECTORY instead of saving a directory pointer. 2015-07-15 15:13:16 +09:00
Sebastian Lackner 64ee8a4a53 ntdll: Do not omit mandatory argument for VirtualProtect. 2015-05-04 20:07:58 +09:00
Francois Gouget ca1545cf17 ntdll: Remove unneeded NONAMELESSXXX directives. 2015-03-16 15:04:50 +09:00
Michael Müller 15d013067d ntdll: Wait until builtin dlls are unloaded before releasing the virtual view. 2014-10-07 20:22:15 +02:00
Sebastian Lackner 5272ca241b ntdll: Set ldr.EntryPoint for main executable. 2014-10-07 20:22:13 +02:00
Sebastian Lackner 636dc013cd ntdll: Use call_dll_entry_point to execute TLS callbacks. 2014-09-08 16:03:38 +02:00
Sebastian Lackner b7f77bb1fd ntdll: Save more registers in call_dll_entry_point on i386. 2014-09-08 16:02:17 +02:00
Nikolay Sivov 5a8d73283c ntdll: Fix LdrLockLoaderLock()/LdrUnlockLoaderLock() on 64bit. 2014-06-11 13:05:39 +02:00
Nikolay Sivov 97e2af1f73 ntdll: Implement non-blocking mode for LdrLockLoaderLock(). 2014-05-16 10:52:52 +02:00
Alexandre Julliard 0e42fd97c0 ntdll: Detect 16-bit modules and resolve imports for them. 2014-02-25 16:08:24 -06:00
Alexandre Julliard ff08cd597d ntdll: Only allocate TLS data when resolving imports. 2014-02-17 20:16:08 +01:00
Alexandre Julliard f5fc925f0e ntdll: Move fixup_imports to avoid forward declarations. 2014-02-17 20:15:45 +01:00
Alexandre Julliard 0f0bf58663 ntdll: Don't fixup imports for executables. 2014-02-17 20:15:44 +01:00
Alexandre Julliard 7307298ac3 ntdll: Don't fixup imports when a dll is already loaded. 2014-02-17 20:15:43 +01:00
Martin Storsjo 48ae8f3070 ntdll: Improve handling of THUMB_MOV32 relocations. 2014-01-03 11:27:29 +01:00
Alexandre Julliard e54503f708 ntdll: Allocate TLS data in all running threads on module load. 2013-12-23 18:39:58 +01:00
Alexandre Julliard 1a4eca6f16 ntdll: Allocate TLS slots dynamically on module load. 2013-12-23 18:39:58 +01:00
Alexandre Julliard 384d698a9e ntdll: Allocate a separate pointer for each TLS slot. 2013-12-23 18:39:58 +01:00
Alexandre Julliard e8eb781327 server: Check PE file architecture at mapping creation time. 2013-11-21 19:39:02 +01:00
André Hentschel b6b9050d58 ntdll: Implement LdrResolveDelayLoadedAPI. 2013-11-12 12:58:03 +01:00
Frédéric Delanoy 416930d498 ntdll: Use BOOL type where appropriate. 2013-11-04 11:03:43 +01:00
Nikolay Sivov 146ff49161 ntdll: Support pinning module refcount with LdrAddRefDll(). 2013-10-14 10:49:44 +02:00
Dmitry Timoshkov c7afb0bb88 ntdll: Don't use asynchronous file IO in the loader. 2013-09-30 20:35:03 +02:00
Alexandre Julliard 3799d55d9b ntdll: Implement RtlExitUserProcess. 2013-07-19 12:15:15 +02:00
Alexandre Julliard 1c11770159 ntdll: Simplify detach sequence now that there is no possible race on process exit. 2013-07-19 12:13:09 +02:00
André Hentschel e187c4aec2 ntdll: Respect the 8-bit part in the ARM relocation. 2013-04-15 17:01:46 +02:00
Alexandre Julliard cd03a51e7d ntdll: Set the address space limit before running application code. 2013-04-04 13:28:43 +02:00
André Hentschel 0993f8bb7b ntdll: Implement IMAGE_REL_BASED_THUMB_MOV32 relocation on ARM. 2013-01-21 12:51:14 +01:00
Alexandre Julliard 90e90e3b6a ntdll: Make the page_size variable global. 2013-01-08 16:35:30 +01:00
Christian Costa 49d8b4c039 ntdll: Init retv to FALSE so in case of exception the trace shows the failure. 2012-10-01 12:05:48 +02:00
André Hentschel 33236819c8 ntdll: Add support for dynamically generated stub entry points on ARM. 2012-03-12 10:47:32 +01:00
Dmitry Timoshkov 0e85fc66de ntdll: Use PAGE_EXECUTE_READ protection for an image section. 2012-01-24 18:10:31 +01:00
Jacek Caban 43a9faa734 ntdll: Make LdrLoadDll hotpatchable. 2012-01-06 19:24:23 +01:00
Dmitry Timoshkov 26f4ff1a38 ntdll: Use PAGE_EXECUTE_READWRITE protection when allocating stubs. 2011-11-08 10:19:42 +01:00
Dmitry Timoshkov df9a086865 ntdll: Use PAGE_READWRITE access when resolving DLL imports. 2011-11-03 13:35:11 +01:00
Alexandre Julliard f4024eaa49 ntdll: Fetch the windows directory from the shared user data. 2011-06-16 12:29:21 +02:00
Marcus Meissner 0f0692716b ntdll: Mark FILE_umask with hidden visibility. 2011-05-27 12:21:39 +02:00
Alexandre Julliard 900352bc6b server: Store a mapping instead of a file for process dlls. 2011-04-18 14:45:32 +02:00