Marcus Meissner <mar...@jet.franken.de> writes:

> @@ -1406,7 +1409,18 @@ static void load_builtin_callback( void *module, const 
> char *filename )
>      }
>      virtual_create_system_view( module, nt->OptionalHeader.SizeOfImage,
>                                  VPROT_SYSTEM | VPROT_IMAGE | VPROT_COMMITTED 
> |
> -                                VPROT_READ | VPROT_WRITECOPY | VPROT_EXEC );
> +                                VPROT_READ | VPROT_WRITECOPY | VPROT_EXEC, 
> &view );
> +
> +    sec = 
> (IMAGE_SECTION_HEADER*)((char*)&nt->OptionalHeader+nt->FileHeader.SizeOfOptionalHeader);
> +    for (i=0;i<nt->FileHeader.NumberOfSections;i++) {
> +        DWORD flags = VPROT_SYSTEM | VPROT_IMAGE | VPROT_COMMITTED;
> +
> +        if (sec[i].Characteristics & IMAGE_SCN_MEM_EXECUTE) flags |= 
> VPROT_EXEC;
> +        if (sec[i].Characteristics & IMAGE_SCN_MEM_READ) flags |= VPROT_READ;
> +        if (sec[i].Characteristics & IMAGE_SCN_MEM_WRITE) flags |= 
> VPROT_WRITE;
> +        if (sec[i].Characteristics & IMAGE_SCN_MEM_SHARED) flags |= 
> VPROT_WRITECOPY;
> +        VIRTUAL_SetProt( view, (char*)module + sec[i].VirtualAddress, 
> sec[i].Misc.VirtualSize, flags );

I don't think you want to actually change the permissions, our headers
don't necessarily match the real ELF sections.

(BTW, could you please convince your mailer to set a valid Message-Id?)

-- 
Alexandre Julliard
julli...@winehq.org


Reply via email to