Carlos Lozano clozano@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++) {