Use original memory protection flags for x86_64 in WRITECOPY patch.

This commit is contained in:
Michael Müller 2014-10-03 17:45:26 +02:00
parent 339e6431d0
commit 8634ed8ea4

View File

@ -1,4 +1,4 @@
From 0fc1479ef685757d335eead4193985df33244d04 Mon Sep 17 00:00:00 2001
From fd0671380f0770d071dfc203034e58b6e6f86aff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 1 Oct 2014 00:43:05 +0200
Subject: ntdll: Change WRITECOPY memory protection to WRITE on first write
@ -219,7 +219,7 @@ index c8461b0..a2937c2 100644
/* reserve space for shared user data */
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 4819d2d..a58e582 100644
index 4819d2d..47654f4 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -179,8 +179,13 @@ static int VIRTUAL_GetUnixProt( BYTE vprot )
@ -232,7 +232,7 @@ index 4819d2d..a58e582 100644
+ if (vprot & VPROT_WRITECOPY) prot &= ~PROT_WRITE;
+#else
+ /* FIXME: Architecture needs implementation of signal_init_early. */
+ if (vprot & VPROT_WRITECOPY) prot |= PROT_WRITE;
+ if (vprot & VPROT_WRITECOPY) prot |= PROT_WRITE | PROT_READ;
+#endif
if (vprot & VPROT_WRITEWATCH) prot &= ~PROT_WRITE;
}