Regression on ntdll:map_image function
Alexandre Julliard
julliard at winehq.org
Tue Nov 11 13:48:45 CST 2003
Carlos Lozano <clozano at andago.com> writes:
> The problem happens in this line of the patch:
>
> - if (!(view = VIRTUAL_CreateView( ptr, total_size, 0, VPROT_COMMITTED|VPROT_READ, hmapping )))
> + if (!(view = VIRTUAL_CreateView( ptr, total_size, 0,
> + VPROT_COMMITTED | VPROT_READ | VPROT_WRITE |
> + VPROT_EXEC | VPROT_WRITECOPY | VPROT_IMAGE, hmapping )))
>
> It works fine, if you remove the flags VPROT_WRITE and VPROT_WRITECOPY.
This should fix it:
Index: dlls/ntdll/virtual.c
===================================================================
RCS file: /opt/cvs-commit/wine/dlls/ntdll/virtual.c,v
retrieving revision 1.17
diff -u -p -r1.17 virtual.c
--- dlls/ntdll/virtual.c 4 Nov 2003 04:50:19 -0000 1.17
+++ dlls/ntdll/virtual.c 11 Nov 2003 19:41:18 -0000
@@ -738,6 +738,7 @@ static NTSTATUS map_image( HANDLE hmappi
/* set the image protections */
+ VIRTUAL_SetProt( view, ptr, header_size, VPROT_COMMITTED | VPROT_READ );
sec = (IMAGE_SECTION_HEADER*)((char *)&nt->OptionalHeader+nt->FileHeader.SizeOfOptionalHeader);
for (i = 0; i < nt->FileHeader.NumberOfSections; i++, sec++)
{
--
Alexandre Julliard
julliard at winehq.com
More information about the wine-devel
mailing list