mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-05 18:01:34 +00:00
ntdll: reset_write_watches shouldn't remove enforced exec permissions.
This commit is contained in:
parent
aa3c6111d9
commit
e16996bb3d
2 changed files with 3 additions and 7 deletions
|
@ -2112,10 +2112,6 @@ static void test_atl_thunk_emulation( ULONG dep_flags )
|
|||
ret = send_message_excpt( hWnd, WM_USER, 0, 0 );
|
||||
ok( ret == 42, "call returned wrong result, expected 42, got %d\n", ret );
|
||||
ok( num_guard_page_calls == 0, "expected no STATUS_GUARD_PAGE_VIOLATION exception, got %d exceptions\n", num_guard_page_calls );
|
||||
if (dep_flags & MEM_EXECUTE_OPTION_DISABLE)
|
||||
ok( num_execute_fault_calls == 0, "expected no STATUS_ACCESS_VIOLATION exception, got %d exceptions\n", num_execute_fault_calls );
|
||||
else
|
||||
todo_wine
|
||||
ok( num_execute_fault_calls == 0, "expected no STATUS_ACCESS_VIOLATION exception, got %d exceptions\n", num_execute_fault_calls );
|
||||
|
||||
/* Now a bit more complicated, the page containing the code is protected with
|
||||
|
|
|
@ -693,12 +693,12 @@ static void reset_write_watches( struct file_view *view, void *base, SIZE_T size
|
|||
p[i] |= VPROT_WRITEWATCH;
|
||||
prot = VIRTUAL_GetUnixProt( p[i] );
|
||||
if (prot == unix_prot) continue;
|
||||
mprotect( addr, count << page_shift, unix_prot );
|
||||
mprotect_exec( addr, count << page_shift, unix_prot, view->protect );
|
||||
addr += count << page_shift;
|
||||
unix_prot = prot;
|
||||
count = 0;
|
||||
}
|
||||
if (count) mprotect( addr, count << page_shift, unix_prot );
|
||||
if (count) mprotect_exec( addr, count << page_shift, unix_prot, view->protect );
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue