[PATCH 4/5] ntdll: Avoid modifying the first page when mapping a PE file.
Andrew Wesie
awesie at gmail.com
Fri Jan 24 11:50:17 CST 2020
Based on the behavior of QueryWorkingSetEx, the header of a PE file should
generally be shared. By zeroing part of the header, copy-on-write is triggered
and the page is no longer shared. There does not appear to be a rationale for
clearing these bytes.
Signed-off-by: Andrew Wesie <awesie at gmail.com>
---
dlls/ntdll/virtual.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 529f9575d3..7065581709 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1572,7 +1572,6 @@ static NTSTATUS map_image( HANDLE hmapping, ACCESS_MASK access, int fd, int top_
dos = (IMAGE_DOS_HEADER *)ptr;
nt = (IMAGE_NT_HEADERS *)(ptr + dos->e_lfanew);
header_end = ptr + ROUND_SIZE( 0, header_size );
- memset( ptr + header_size, 0, header_end - (ptr + header_size) );
if ((char *)(nt + 1) > header_end) goto error;
header_start = (char*)&nt->OptionalHeader+nt->FileHeader.SizeOfOptionalHeader;
if (nt->FileHeader.NumberOfSections > ARRAY_SIZE( sections )) goto error;
--
2.17.1
More information about the wine-devel
mailing list