Commit 33b0f0ed authored by Alexandre Julliard's avatar Alexandre Julliard

ntdll: Fix protection flags for uninitialized sections.

parent 8d503428
......@@ -1341,8 +1341,14 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz
size = ROUND_SIZE( sec->VirtualAddress, sec->SizeOfRawData );
if (sec->Characteristics & IMAGE_SCN_MEM_READ) vprot |= VPROT_READ;
if (sec->Characteristics & IMAGE_SCN_MEM_WRITE) vprot |= VPROT_READ | VPROT_WRITECOPY;
if (sec->Characteristics & IMAGE_SCN_MEM_EXECUTE) vprot |= VPROT_EXEC;
if (sec->Characteristics & IMAGE_SCN_MEM_WRITE)
{
if (sec->Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA)
vprot |= VPROT_READ | VPROT_WRITE;
else
vprot |= VPROT_READ | VPROT_WRITECOPY;
}
/* Dumb game crack lets the AOEP point into a data section. Adjust. */
if ((nt->OptionalHeader.AddressOfEntryPoint >= sec->VirtualAddress) &&
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment