Commit Graph

5610 Commits

Author SHA1 Message Date
Alexandre Julliard cc9446f874 server: Don't change the reported machine for COM+ images.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50826
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-19 22:09:23 +01:00
Alexandre Julliard 74390cead3 ntdll: Add a global constant for the system directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-19 19:55:34 +01:00
Rémi Bernon d9d478e277 ntdll/tests: Add RtlQueryPerformanceCounter tests.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-19 19:55:34 +01:00
Alexandre Julliard 86947587d2 server: Remove the redundant cpu field in the PE image information.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-17 11:49:23 +01:00
Alexandre Julliard 4ea07a30ce ntdll: Check the builtin signature when creating a module.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-17 11:49:23 +01:00
Rémi Bernon 4d5824112e ntdll: Don't call possibly deadly DbgUiGetThreadDebugObject.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 22:16:54 +01:00
Alexandre Julliard 5cc6035284 ntdll: Add the builtin signature in .so file mappings.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 20:36:43 +01:00
Alexandre Julliard e0fc8d7acb ntdll: Call the Unix entry point from the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 20:36:43 +01:00
Alexandre Julliard 22da5bd757 ntdll: Move the loadorder support to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 20:36:43 +01:00
Alexandre Julliard 9e38a68001 ntdll: Add a helper for mapping a PE image.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 11:01:19 +01:00
Alexandre Julliard 8824474e08 ntdll: Move the builtin dll list to virtual.c.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 10:58:14 +01:00
Hans Leidekker e6407c39ba ntdll: Fall back to reading /dev/urandom if getrandom() is not supported.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50168
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 10:45:59 +01:00
Rémi Bernon 97d2802d1b ntdll/tests: Add InterruptTimeBias to fix spurious test failures.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-15 22:22:19 +01:00
Rémi Bernon 8591c2ac1a ntdll/tests: Fix tick count read from user shared data.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-15 22:22:19 +01:00
Alexandre Julliard 6531f262e3 server: Return the file name for image mappings in the get_mapping_info request.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-15 11:02:20 +01:00
Alexandre Julliard 9107f591d3 ntdll: Explicitly reset the PATH variable before reloading the environment.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50786
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 21:33:43 +01:00
Rafał Harabień 77481d36d3 ntdll: Allow getting/setting x86_64 context of x86 processes in wine64.
WoW64 process has two separate contexts:
- x86 context used most of the time (e.g. by application code)
- x86_64 context used by system when it quits x86 emulation and jumps to
  the kernel code
A notable exception are debug registers - their state is shared. Some
debuggers make use of that fact and sets/gets debug registers of x86
processes using x86_64 thread context.

Add support for setting and getting debug registers using x86_64
thread context. Getting other registers is allowed too and will return
values from x86 thread context.

Fixes hardware breakpoints in IDA 7.0 disassembler (x86_64 app) when
debugging x86 (32 bit) applications.

Signed-off-by: Rafał Harabień <rafalh92@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 21:33:43 +01:00
Rafał Harabień bee9f0126f ntdll/tests: Test getting/setting x86_64 context of x86 processes in wine64.
Signed-off-by: Rafał Harabień <rafalh92@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 21:33:43 +01:00
Rémi Bernon 0eb3258a69 ntdll: Initialize mountmgr_unix_drive before NtDeviceIoControlFile (valgrind).
Syscall param writev(vector[...]) points to uninitialised byte(s)
     at 0x4189DA3: writev (writev.c:26)
     by 0x46A5A1B: send_request (server.c:213)
     by 0x46A5A1B: server_call_unlocked (server.c:273)
     by 0x46CA54F: virtual_locked_server_call (virtual.c:2993)
     by 0x4681C9A: server_ioctl_file (file.c:4789)
     by 0x468B326: NtDeviceIoControlFile (file.c:5620)
     by 0x468B7AF: get_mountmgr_fs_info (file.c:1986)
     by 0x468B7AF: get_mountmgr_fs_info (file.c:1955)
     by 0x468FCBB: NtQueryVolumeInformationFile (file.c:6483)
     by 0x4677E88: __wine_syscall_dispatcher_xsave (in /home/rbernon/Code/build-wine/wine64/dlls/ntdll/ntdll.so)
     by 0x7BC0DEB3: NtQueryVolumeInformationFile (in /home/rbernon/Code/build-wine/wine64/dlls/ntdll/ntdll.dll)
     by 0x7B01F127: GetFileInformationByHandle (file.c:2938)
     by 0x7096A5C3: _fstat64 (file.c:1791)
     by 0x7096A941: _fstat64i32 (file.c:1877)
   Address 0x7ffffe30e520 is in a rw- anonymous segment

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 21:33:43 +01:00
Rémi Bernon f69e5478d5 ntdll: Fix environment memcpy read overflow (valgrind).
Invalid read of size 1
     at 0x7BC5C5E3: memcpy (string.c:109)
     by 0x7BC267F7: RtlCreateProcessParametersEx (env.c:785)
     by 0x7B04EB57: create_process_params (process.c:183)
     by 0x7B04EB57: CreateProcessInternalW (process.c:544)
     by 0x7B0508E3: CreateProcessW (process.c:668)
     by 0x403B1E: runCmd (wineboot.c:1055)
     by 0x403B1E: process_run_key (wineboot.c:1126)
     by 0x404228: ProcessRunKeys (wineboot.c:1159)
     by 0x406DB1: main (wineboot.c:1707)
   Address 0x7ffffe00331a is 0 bytes after a recently re-allocated block of size 12,074 alloc'd
     at 0x7BC2D209: notify_alloc (heap.c:260)
     by 0x7BC2D209: RtlAllocateHeap (heap.c:1713)
     by 0x7BC25BAC: RtlSetEnvironmentVariable (env.c:515)
     by 0x7BC25EE0: set_env_var (env.c:61)
     by 0x7BC26C37: set_wow64_environment (env.c:228)
     by 0x7BC26C37: init_user_process_params (env.c:891)
     by 0x7BC3B01B: process_init (loader.c:3991)
     by 0x7BC3CD24: __wine_set_unix_funcs (loader.c:4095)
     by 0x469604E: start_main_thread (loader.c:1752)
     by 0x469604E: __wine_main (loader.c:2083)
     by 0x7D001231: main (main.c:157)

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 21:33:43 +01:00
Rémi Bernon c3c4d0c37e ntdll: Initialize dbg_offset and dbg_size (valgrind).
Syscall param writev(vector[...]) points to uninitialised byte(s)
     at 0x4189DA3: writev (writev.c:26)
     by 0x46A5A0B: send_request (server.c:213)
     by 0x46A5A0B: server_call_unlocked (server.c:273)
     by 0x46A5B4F: wine_server_call (server.c:289)
     by 0x46C996A: virtual_create_builtin_view (virtual.c:2524)
     by 0x4692CB4: dlopen_dll (loader.c:1133)
     by 0x46931CA: open_builtin_file (loader.c:1373)
     by 0x46931CA: open_builtin_file (loader.c:1354)
     by 0x4694559: load_builtin_dll (loader.c:1457)
     by 0x7BC375F2: load_builtin_dll (loader.c:2348)
     by 0x7BC38369: load_dll (loader.c:2705)
     by 0x7BC39E46: import_dll (loader.c:782)
     by 0x7BC36CEC: fixup_imports (loader.c:1138)
     by 0x7BC3BE4B: LdrInitializeThunk (loader.c:3454)
   Address 0x32e390 is on thread 1's stack
   in frame #5, created by open_builtin_file (loader.c:1357)

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 21:33:43 +01:00
Roman Pišl dabba3cc86 ntdll: Don't set error status if volume serial number is missing.
Fixes regression from b14eee69c7.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50781
Signed-off-by: Roman Pišl <rpisl@seznam.cz>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 21:33:43 +01:00
Zebediah Figura ba5465c71f ntdll: Export RtlQueryRegistryValuesEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46969
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 12:00:35 +01:00
Alexandre Julliard 0599347e96 ntdll: Launch wineboot from the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 21:43:26 +01:00
Alexandre Julliard d0a1bddea0 ntdll: Make sure we send valid object attributes in NtCreateUserProcess().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 21:43:26 +01:00
Alexandre Julliard 9443a7397d ntdll: Predefine the SystemRoot and SystemDrive variables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 21:43:26 +01:00
Alexandre Julliard f6e64c55f2 ntdll: Set environment variables from the registry on the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 21:41:44 +01:00
Alexandre Julliard e63b8ead43 ntdll: Add support for growing the initial environment dynamically.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 21:32:26 +01:00
Alexandre Julliard 16b0994412 ntdll: Make the open_hkcu_key() helper available globally.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 10:42:35 +01:00
Alexandre Julliard 285830f5ec ntdll: Add a helper to initialize a UNICODE_STRING on the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 10:42:34 +01:00
Jacek Caban e979ee96b6 ntdll: Use xsave compaction in syscall dispatcher.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-03 21:54:45 +01:00
Jacek Caban c715243122 ntdll: Fix a typo in SegSs handling in NtSetContextThread.
Spotted by Brendan Shanks.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-03 21:54:45 +01:00
Paul Gofman 633db76f78 ntdll: Reset YMM state in NtSetContextThread() if that is assumed by the context being set.
Fixes test failure on testbot where compaction is not supported
(resetting YMM state if that is implied by the context being set).

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-03 21:54:44 +01:00
Paul Gofman 66a819ef0c ntdll: Print an ERR for assertion exceptions only.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-03 21:54:44 +01:00
Alexandre Julliard 46fd718ec7 ntdll: Fetch locale information from the Unix side in resource loading.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50769
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-03 21:54:44 +01:00
Jacek Caban af74bd3122 ntdll: Use syscall dispatcher to restore context in NtSetContextThread.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 20:41:39 +01:00
Jacek Caban e990bd4676 ntdll: Use syscall frame for handling x86 YMM context in NtSetContextThread.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 20:41:08 +01:00
Jacek Caban 8064d9786a ntdll: Use syscall frame for x86 YMM context in NtGetContextThread.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 20:41:03 +01:00
Jacek Caban 5d228d6fc9 ntdll: Store x86 YMM context insyscall dispatcher.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 20:40:49 +01:00
Alexandre Julliard 193d9fcf26 ntdll: Only check the existence of the directory for the Unix pathname heuristic.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 17:55:34 +01:00
Alexandre Julliard e5cade0ff1 ntdll: Remove DLL_WINE_PREATTACH support.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 11:01:25 +01:00
Jacek Caban 6e03330a21 ntdll: Use syscall frame for FPU and XMM contexts in NtSetContextThread.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-01 21:13:00 +01:00
Jacek Caban e5d671bee5 ntdll: Use syscall frame for FPU and XMM contexts in NtGetContextThread.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-01 21:13:00 +01:00
Jacek Caban ce5f17c892 ntdll: Store FPU and XMM contexts in x86 syscall frame.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-01 21:13:00 +01:00
Jacek Caban bbae70bf1e ntdll: Use syscall frame in x86 call_raise_user_exception_dispatcher implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-01 21:13:00 +01:00
Zebediah Figura 0421ea3975 ntdll: Stub Wow64Transition.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45567
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-01 18:03:18 +01:00
Alexandre Julliard ff6a3433c5 ntdll: Store the locales in Wine-specific environment variables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-28 11:30:37 +01:00
Alexandre Julliard 65cff86951 ntdll: Remove no longer needed Unix codepage functions from the PE side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-28 11:29:46 +01:00
Alexandre Julliard 45bfa4eec3 ntdll: Check for existing Unix path name in RtlGetFullPathName_U().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-28 11:29:17 +01:00
Alexandre Julliard 0d173e5710 ntdll: Store the Unix codepage in a Wine-specific environment variable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-28 11:24:54 +01:00