Commit Graph

353 Commits

Author SHA1 Message Date
Alexandre Julliard 8dc8b3e9c0 ntdll: Avoid accessing builtin views outside of the critical section.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-11 19:50:30 +02:00
Alexandre Julliard 26c59d845e ntdll: Ignore attempts to commit pages in an already committed anonymous mapping.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-08 16:23:15 +02:00
Alexandre Julliard 5073beaefe ntdll: Store the SEC_* section flags directly in the view protection.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-08 16:23:15 +02:00
Alexandre Julliard b2624ab99a ntdll: Remove the no longer used VPROT_NOEXEC flag.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-08 16:23:15 +02:00
Alexandre Julliard 08acac0864 ntdll: Disallow changing PAGE_NOCACHE flag for individual pages.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-08 16:23:15 +02:00
Alexandre Julliard 2967e3efb6 ntdll: Store memory views in a binary tree instead of a list.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-07 19:32:29 +02:00
Alexandre Julliard 917d98a457 ntdll: Use the find_view_range helper function to check for overlapping views.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-07 19:07:32 +02:00
Alexandre Julliard 3bfd7973a4 ntdll: Don't do partial writes in virtual_uninterrupted_write_memory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-06 17:31:00 +02:00
Alexandre Julliard a0f64e1231 ntdll: Allocate views out of a memory block instead of using a heap.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-06 10:01:07 +02:00
Alexandre Julliard 2e12f7cdd6 ntdll: Remove the view parameter from the page protection helpers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 16:53:37 +02:00
Alexandre Julliard 3ecf069e45 ntdll: Allocate the per-page protection byte separately from the view.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 16:53:37 +02:00
Alexandre Julliard eb5c187254 ntdll: Pass the allocation size to the alloc_virtual_heap function.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 16:22:38 +02:00
Alexandre Julliard 4069c4a4d1 ntdll: Add a helper function for applying page protection bytes with mprotect.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 16:22:37 +02:00
Alexandre Julliard e4b5e5da8a ntdll: Add a helper function for setting bits in page protection bytes.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 16:21:47 +02:00
Alexandre Julliard 727b94842e ntdll: Add helper functions for getting and setting page protection bytes.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 16:21:45 +02:00
Akihiro Sagawa 74b7fcfbdb ntdll: Allow map_view() to allocate fixed memory between reserved area and non-reserved area.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 13:48:55 +02:00
Akihiro Sagawa 1afb369380 ntdll: Zero bits parameter must be less than 21.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 20:51:46 +02:00
Sebastian Lackner 9815806f16 configure: Explicitly check for sysinfo function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 20:18:00 +09:00
Alexandre Julliard 32c7153fdb server: Avoid rounding mapping sizes on the server side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 17:03:03 +09:00
Alexandre Julliard 6f0979b983 ntdll: Implement the SectionImageInformation class of NtQuerySection.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 20:33:16 +09:00
Alexandre Julliard 2602df14d8 ntdll: Implement the SectionBasicInformation class of NtQuerySection.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 20:32:10 +09:00
Alexandre Julliard 1ddc636051 server: Store the section flags separately from the protection.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 14:20:02 +09:00
Michael Müller 1311c8157b ntdll: NtUnmapViewOfSection should succeed for all offsets within the mapped range.
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-19 22:03:21 +09:00
Michael Müller d0832cdf42 ntdll: Use sysinfo to report correct number of physical pages.
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-14 17:52:35 +09:00
Sebastian Lackner a697e96823 ntdll: Use close_handle instead of NtClose for internal memory management functions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-31 15:57:33 +09:00
Alexandre Julliard fe0924625f ntdll: Add a helper to validate attributes in open calls, and use a common pattern in all calls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:11 +09:00
Alexandre Julliard 8b2ba27c86 ntdll: Add tests for kernel object names in the various open functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 00:41:30 +09:00
Alexandre Julliard 7350682aa6 server: Store the attributes in the object_attributes structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Alexandre Julliard 3198fb0c1c ntdll: Add a helper function to allocate the full object_attributes structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Sebastian Lackner 7b66f9f6b4 ntdll: Commit new guard pages in virtual_handle_stack_fault.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-30 23:16:49 +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
Francois Gouget f8a7d6ed74 Assorted spelling fixes. 2015-08-07 23:50:48 +09:00
Sebastian Lackner 6e66c12c68 ntdll: Validate SecurityCookie pointer before accessing cookie value. 2015-07-30 11:36:21 +02:00
Martin Storsjo 2a904d3bb3 ntdll: Handle partial image load config structs. 2015-07-29 21:44:03 +02:00
Erich E. Hoover e9d7cf99ad ntdll: Only set the security cookie if it has not already been set. 2015-07-14 16:43:30 +09:00
André Hentschel 7e1c886fbf ntdll: Randomize security cookie when available. 2015-07-08 16:20:06 +09:00
Sebastian Lackner d082ea3eab ntdll: Implement support for AT_ROUND_TO_PAGE flag in NtMapViewOfSection. 2015-06-26 20:35:05 +09:00
Sebastian Lackner 7a8470ea94 ntdll: NtMapViewOfSection should fail if both addr_ptr and zero_bits is set. 2015-06-26 20:35:05 +09:00
Sebastian Lackner 8ddab2c2f4 ntdll: Fix status code when NtMapViewOfSection parameter check fails. 2015-06-08 15:34:04 +09:00
Sebastian Lackner ee6a477cab ntdll: Return failure in NtProtectVirtualMemory when last argument is omitted. 2015-05-05 23:15:31 +09:00
Sebastian Lackner 5f49f07d49 ntdll: Handle write watches in virtual_uninterrupted_write_memory. 2015-03-19 17:06:29 +09:00
Francois Gouget ca1545cf17 ntdll: Remove unneeded NONAMELESSXXX directives. 2015-03-16 15:04:50 +09:00
Sebastian Lackner 6bec132c7a ntdll: Try to handle write-watches while we're on the signal stack. 2015-02-27 14:59:08 +09:00
Hans Leidekker faf70e2fbd ntdll: Fix calculation of process and thread affinity masks on systems with a large number of processors. 2015-01-21 15:31:16 +01:00
Sebastian Lackner 34b2d920b4 ntdll: Improve check_atl_thunk to prevent passing exceptions to the usermode application. 2014-10-15 11:52:06 +09:00
Sebastian Lackner e16996bb3d ntdll: reset_write_watches shouldn't remove enforced exec permissions. 2014-10-13 18:31:19 +09:00
Sebastian Lackner aa3c6111d9 ntdll: Ensure force_exec_prot is also used for views with write watch permissions. 2014-10-13 18:31:14 +09:00
Michael Müller 9e69715900 ntdll: Fix handling of page fault if a guard page and write watch is triggered at the same time. 2014-10-07 20:21:56 +02:00
Alexandre Julliard 2cef8dbcc2 ntdll: Determine the mapping type automatically from the WRITECOPY flag. 2014-05-13 12:28:58 +02:00
Jacek Caban 5ceb22714e ntdll: Use MAP_PRIVATE for copy on write mappings. 2014-05-13 12:27:32 +02:00
Jacek Caban 4792cf31c5 ntdll: Always use MAP_SHARED in NtMapViewOfSection. 2014-05-08 18:27:38 +02:00
Alexandre Julliard 693d6e48d7 ntdll: Don't wait for writes to complete in NtFlushVirtualMemory. 2014-04-24 14:39:48 +02:00
Alexandre Julliard e8eb781327 server: Check PE file architecture at mapping creation time. 2013-11-21 19:39:02 +01:00
André Hentschel 4ecc9788bd ntdll: Adjust NtAreMappedFilesTheSame to win8 behaviour. 2013-11-13 11:21:50 +01:00
Frédéric Delanoy 416930d498 ntdll: Use BOOL type where appropriate. 2013-11-04 11:03:43 +01:00
Alexandre Julliard 5c0b5f4dcb ntdll: Move the select and APC support to server.c. 2013-08-26 20:36:56 +02:00
Dmitry Timoshkov 3d759a0c69 ntdll: NtAllocateVirtualMemory should fail to commit if an address range is already committed for a memory mapped file. 2013-07-19 14:40:17 +02:00
Daniel Lehman 12f3ac4f46 ntdll: Use larger virtual heap for 64-bit. 2013-04-12 11:56:10 +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 6c02f66075 ntdll: Remove SPARC support. 2013-03-05 11:01:27 +01:00
Alexandre Julliard 99d89b347f ntdll: Add a helper function to check that a fault address lies in a known virtual memory view. 2013-02-12 19:56:19 +01:00
Alexandre Julliard 90e90e3b6a ntdll: Make the page_size variable global. 2013-01-08 16:35:30 +01:00
André Hentschel 538a0abbd7 include: Rename IMAGE_FILE_MACHINE_ARMV7 to IMAGE_FILE_MACHINE_ARMNT. 2012-08-17 10:45:17 +02:00
André Hentschel 567e44161c ntdll: Check for ARMv7 architecture dynamically when loading a PE. 2012-06-25 10:37:56 +02:00
Erich Hoover 48174b6d1e ntdll: Fix section header heap deadlock. 2012-04-06 20:10:58 +02:00
Henri Verbeet f1651e9208 ntdll: Use the copy of the section headers for applying memory protections as well in map_image(). 2012-04-04 17:22:12 +02:00
Henri Verbeet 31eff06654 ntdll: Free the correct section headers copy in map_image(). 2012-04-04 17:22:08 +02:00
Erich Hoover 3dd58d8bfb ntdll: Fix mapping sections for applications that map over the section headers. 2012-03-16 11:21:01 +01:00
Dmitry Timoshkov 3a5ee02735 ntdll: Add an access check for file mappings. 2012-01-24 18:10:31 +01:00
Dmitry Timoshkov 1d01a7ba1e kernel32: Fix access flags to page protection mapping in MapViewOfFileEx. 2012-01-17 11:54:43 +01:00
Dmitry Timoshkov 332eee4053 ntdll: Replace WRITE by WRITECOPY protection on an image section as Windows does. 2011-12-16 16:38:29 +01:00
Dmitry Timoshkov eed406e028 ntdll: Setting WRITECOPY protection on a memory-mapped file is allowed. 2011-12-16 16:38:29 +01:00
Francois Gouget c7cb3e6cb2 configure: Use errno.h instead of the non-standard sys/errno.h header. 2011-12-15 17:46:38 +01:00
Dmitry Timoshkov 517d0800df ntdll: Revert 33b0f0edff.
The tests clearly show that this commit is wrong.
2011-11-23 14:14:25 +01:00
Dmitry Timoshkov a93f86716f kernel32: Add a bunch of tests for protections accepted by VirtualAlloc, make it pass under Wine. 2011-11-08 10:19:51 +01:00
Dmitry Timoshkov 33255ee6ec ntdll: Make the VirtualProtect tests pass under Wine. 2011-11-03 13:51:56 +01:00
André Hentschel 41e188f148 ntdll: Only load ARMv7 PE images when supported by CPU. 2011-11-02 12:27:15 +01:00
André Hentschel 9afb206eaf ntdll: Try to load ARMv7 PE images on ARM. 2011-11-01 16:45:39 +01:00
Michael Stefaniuc 68f90d9697 kernel32/ntdll: Mark a variable as unused. 2011-10-28 19:10:30 +02:00
Dmitry Timoshkov 16eac43c8e ntdll: Move adding VPROT_READ for Solaris to the same place where it's done for FreeBSD. 2011-10-17 17:45:07 +02:00
Dmitry Timoshkov f7e466455d ntdll: FreeBSD needs page read access when execute access is requested. 2011-10-17 17:45:07 +02:00
Dmitry Timoshkov 988307e87b ntdll: Use STATUS_INVALID_PAGE_PROTECTION as return value for invalid protections. 2011-09-28 11:00:02 +02:00
Alexandre Julliard 33b0f0edff ntdll: Fix protection flags for uninitialized sections. 2011-09-09 12:40:44 +02:00
André Hentschel 322c2f45f8 ntdll: Fix a comment. 2011-09-08 11:21:49 +02:00
André Hentschel 8fc7419120 ntdll: Allow reading from a writable section. 2011-09-07 18:13:33 +02:00
Dmitry Timoshkov 3d81e97c75 kernel32: Add a test how PE section characteristics get mapped into memory page access, make it pass under Wine. 2011-07-20 19:23:04 +02:00
André Hentschel 4e26336eae ntdll: Improved ARM little endianess detection. 2011-05-23 11:14:53 +02:00
Piotr Caban 6b2c9505c6 ntdll: Restore stack guard and prevent stack from shrinking. 2011-04-13 14:13:57 +02:00
Alexandre Julliard 9eba2de390 ntdll: Improve the error reporting for invalid PE file architectures. 2011-02-19 14:11:05 +01:00
Alexandre Julliard 156ba4eddf ntdll: Avoid putting the virtual heap in the low 2Gb on 64-bit. 2010-12-17 13:26:00 +01:00
Alexandre Julliard e39c6d0474 ntdll: Don't worry about the DOS area on non-x86. 2010-12-16 10:25:14 +01:00
Marcus Meissner e7cb2d35f0 ntdll: Report a failed executable mmap on nonexec filesystems. 2010-12-10 17:09:34 +01:00
Hans Leidekker 71beac3219 ntdll: Don't call NtClose directly in delete_view. 2010-12-02 12:47:42 +01:00
Marcus Meissner da8c179d61 ntdll: Fixed file view mapping in regards to no-exec. 2010-11-15 13:20:09 +01:00
Marcus Meissner 2e7dc35786 ntdll: Check and fix PE header protections. 2010-11-08 18:12:57 +01:00
Alexandre Julliard 3aa6e3bd89 ntdll: Explicitly check for failure to map page 0. 2010-11-04 17:48:01 +01:00
Alexandre Julliard 3fa03e1c78 ntdll: Report memory areas in DOS memory to be free even when not reserved. 2010-11-04 17:47:29 +01:00
André Hentschel 186ada5472 ntdll: Add Support for loading ARM PEs. 2010-11-02 11:16:37 +01:00
Alexandre Julliard e7c67c0cb1 ntdll: More complete implementation of NtAreMappedFilesTheSame. 2010-10-19 16:14:40 +02:00