[2/2] ntdll: Move adding VPROT_READ for Solaris to the same place where it's done for FreeBSD.

Dmitry Timoshkov dmitry at baikal.ru
Thu Oct 13 22:16:35 CDT 2011


---
 dlls/ntdll/virtual.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 367b81a..b2295cd 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -187,7 +187,7 @@ static int VIRTUAL_GetUnixProt( BYTE vprot )
     if ((vprot & VPROT_COMMITTED) && !(vprot & VPROT_GUARD))
     {
         if (vprot & VPROT_READ) prot |= PROT_READ;
-        if (vprot & VPROT_WRITE) prot |= PROT_WRITE;
+        if (vprot & VPROT_WRITE) prot |= PROT_WRITE | PROT_READ; /* Solaris needs READ */
         if (vprot & VPROT_WRITECOPY) prot |= PROT_WRITE;
         if (vprot & VPROT_EXEC) prot |= PROT_EXEC | PROT_READ; /* FreeBSD needs READ */
         if (vprot & VPROT_WRITEWATCH) prot &= ~PROT_WRITE;
@@ -1345,9 +1345,9 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz
         if (sec->Characteristics & IMAGE_SCN_MEM_WRITE)
         {
             if (sec->Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA)
-                vprot |= VPROT_READ | VPROT_WRITE;
+                vprot |= VPROT_WRITE;
             else
-                vprot |= VPROT_READ | VPROT_WRITECOPY;
+                vprot |= VPROT_WRITECOPY;
         }
 
         /* Dumb game crack lets the AOEP point into a data section. Adjust. */
-- 
1.7.5.1




More information about the wine-patches mailing list