Rebase against eb5c1872540a71ebef4703387c11c414516233f4.

This commit is contained in:
Sebastian Lackner 2017-09-07 17:45:21 +02:00
parent 578128d012
commit 34f5330124
7 changed files with 90 additions and 86 deletions

View File

@ -1,35 +1,39 @@
From 67ecb071f690c5188777b495dbd3d77916be1ee4 Mon Sep 17 00:00:00 2001
From 75af51bc0f3d02eeb1d4e243190db9a4813cb11f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 1 Jun 2017 06:04:53 +0200
Subject: ntdll: Fix holes in ELF mappings. (v2)
Based on a patch by Andrew Wesie.
---
dlls/ntdll/virtual.c | 10 ++++++++++
dlls/ntdll/virtual.c | 14 ++++++++++++++
dlls/psapi/tests/psapi_main.c | 14 +++++++++++++-
2 files changed, 23 insertions(+), 1 deletion(-)
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 2889e8babc3..c73d2998703 100644
index 1fa9fd925a1..56a384448c4 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1526,6 +1526,16 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
if (VIRTUAL_GetUnixProt( *vprot ) & PROT_READ) ret = STATUS_SUCCESS;
@@ -1670,6 +1670,20 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
if (VIRTUAL_GetUnixProt( get_page_vprot( view, page )) & PROT_READ) ret = STATUS_SUCCESS;
else update_shared_data = FALSE;
}
+ else if (!err && (view->protect & VPROT_SYSTEM) && (VIRTUAL_GetUnixProt( *vprot ) & PROT_READ))
+ else if (!err && (view->protect & VPROT_SYSTEM) && (VIRTUAL_GetUnixProt( vprot ) & PROT_READ))
+ {
+ int unix_prot = VIRTUAL_GetUnixProt( *vprot );
+ int unix_prot = VIRTUAL_GetUnixProt( vprot );
+ unsigned char vec;
+
+ if (!VIRTUAL_SetProt( view, page, page_size, *vprot )) *vprot &= ~(VPROT_READ | VPROT_EXEC);
+ else if (!mincore( page, page_size, &vec ) && (vec & 1)) ret = STATUS_SUCCESS;
+ else if (wine_anon_mmap( page, page_size, unix_prot, MAP_FIXED ) != page) *vprot &= ~(VPROT_READ | VPROT_EXEC);
+ else ret = STATUS_SUCCESS;
+ if (!VIRTUAL_SetProt( view, page, page_size, vprot ))
+ set_page_vprot_bits( view, page, page_size, 0, VPROT_READ | VPROT_EXEC );
+ else if (!mincore( page, page_size, &vec ) && (vec & 1))
+ ret = STATUS_SUCCESS;
+ else if (wine_anon_mmap( page, page_size, unix_prot, MAP_FIXED ) != page)
+ set_page_vprot_bits( view, page, page_size, 0, VPROT_READ | VPROT_EXEC );
+ else
+ ret = STATUS_SUCCESS;
+ }
if (!on_signal_stack && (*vprot & VPROT_GUARD))
if (!on_signal_stack && (vprot & VPROT_GUARD))
{
VIRTUAL_SetProt( view, page, page_size, *vprot & ~VPROT_GUARD );
set_page_vprot_bits( view, page, page_size, 0, VPROT_GUARD );
diff --git a/dlls/psapi/tests/psapi_main.c b/dlls/psapi/tests/psapi_main.c
index e35a7b694cb..e7af5bc61cc 100644
--- a/dlls/psapi/tests/psapi_main.c
@ -66,5 +70,5 @@ index e35a7b694cb..e7af5bc61cc 100644
static BOOL check_with_margin(SIZE_T perf, SIZE_T sysperf, int margin)
--
2.13.1
2.14.1

View File

@ -1,4 +1,4 @@
From a903fc237899e6fd92f1604c33c12d12bfbad9ca Mon Sep 17 00:00:00 2001
From 001d09614779630b5fe3885975b8badc79b0a58b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 20 Aug 2014 19:21:18 +0200
Subject: ntdll: Move NtProtectVirtualMemory and NtCreateSection to separate
@ -9,10 +9,10 @@ Subject: ntdll: Move NtProtectVirtualMemory and NtCreateSection to separate
1 file changed, 8 insertions(+)
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 4d4bc3b..4179dba 100644
index caf26ade02d..fb91b03ccb6 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -149,6 +149,14 @@ static void *preload_reserve_end;
@@ -152,6 +152,14 @@ static void *preload_reserve_end;
static BOOL use_locks;
static BOOL force_exec_prot; /* whether to force PROT_EXEC on all PROT_READ mmaps */
@ -26,7 +26,7 @@ index 4d4bc3b..4179dba 100644
+
/***********************************************************************
* VIRTUAL_GetProtStr
* get_page_vprot
--
2.6.1
2.14.1

View File

@ -1,4 +1,4 @@
From e313cf4b443d63f2934062336472454224373e81 Mon Sep 17 00:00:00 2001
From 72c26c780e40e1c08de072b724e3c4912f539927 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 5 May 2017 05:40:50 +0200
Subject: ntdll: Create thread to update user_shared_data time values when
@ -13,7 +13,7 @@ Subject: ntdll: Create thread to update user_shared_data time values when
5 files changed, 117 insertions(+), 9 deletions(-)
diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c
index 2e0e79f8e8..d53488c765 100644
index 2e0e79f8e8d..d53488c7652 100644
--- a/dlls/kernel32/cpu.c
+++ b/dlls/kernel32/cpu.c
@@ -46,7 +46,7 @@
@ -35,10 +35,10 @@ index 2e0e79f8e8..d53488c765 100644
return FALSE;
}
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index f4e002a060..ac1ab2d209 100644
index 71bba83b9bc..a2ea5e0dcd3 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -3191,6 +3191,37 @@ static void start_process( void *arg )
@@ -3217,6 +3217,37 @@ static void start_process( void *arg )
call_thread_entry_point( start_params->kernel_start, start_params->entry );
}
@ -76,7 +76,7 @@ index f4e002a060..ac1ab2d209 100644
/******************************************************************
* LdrInitializeThunk (NTDLL.@)
*
@@ -3222,6 +3253,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
@@ -3248,6 +3279,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
peb->ProcessParameters->WindowTitle = wm->ldr.FullDllName;
version_init( wm->ldr.FullDllName.Buffer );
hidden_exports_init( wm->ldr.FullDllName.Buffer );
@ -85,7 +85,7 @@ index f4e002a060..ac1ab2d209 100644
LdrQueryImageFileExecutionOptions( &peb->ProcessParameters->ImagePathName, globalflagW,
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index 6e51612380..9d066d637c 100644
index cdc12b07db7..c627162da4d 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -176,6 +176,9 @@ extern void VIRTUAL_SetForceExec( BOOL enable ) DECLSPEC_HIDDEN;
@ -99,7 +99,7 @@ index 6e51612380..9d066d637c 100644
/* completion */
extern NTSTATUS NTDLL_AddCompletion( HANDLE hFile, ULONG_PTR CompletionValue,
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
index 9399fbcb5c..cc65f3b48d 100644
index 0cebc2a8daf..9064e1559a9 100644
--- a/dlls/ntdll/thread.c
+++ b/dlls/ntdll/thread.c
@@ -43,6 +43,7 @@
@ -121,7 +121,7 @@ index 9399fbcb5c..cc65f3b48d 100644
PUNHANDLED_EXCEPTION_FILTER unhandled_exception_filter = NULL;
@@ -344,18 +347,71 @@ static ULONG_PTR get_image_addr(void)
@@ -353,18 +356,71 @@ static ULONG_PTR get_image_addr(void)
*/
BYTE* CDECL __wine_user_shared_data(void)
{
@ -198,7 +198,7 @@ index 9399fbcb5c..cc65f3b48d 100644
/***********************************************************************
* thread_init
*
@@ -386,7 +442,7 @@ HANDLE thread_init(void)
@@ -395,7 +451,7 @@ HANDLE thread_init(void)
MESSAGE( "wine: failed to map the shared user data: %08x\n", status );
exit(1);
}
@ -208,10 +208,10 @@ index 9399fbcb5c..cc65f3b48d 100644
/* allocate and initialize the PEB */
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index ee9c8d0195..2889e8babc 100644
index ea4834f6abd..caf26ade02d 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1497,6 +1497,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
@@ -1619,6 +1619,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
struct file_view *view;
NTSTATUS ret = STATUS_ACCESS_VIOLATION;
sigset_t sigset;
@ -219,26 +219,26 @@ index ee9c8d0195..2889e8babc 100644
server_enter_uninterrupted_section( &csVirtual, &sigset );
if ((view = VIRTUAL_FindView( addr, 0 )))
@@ -1513,6 +1514,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
@@ -1635,6 +1636,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
/* ignore fault if page is writable now */
if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS;
if (VIRTUAL_GetUnixProt( get_page_vprot( view, page )) & PROT_WRITE) ret = STATUS_SUCCESS;
}
+ else if (!err && page == user_shared_data_external)
+ {
+ if (!(*vprot & VPROT_READ))
+ if (!(vprot & VPROT_READ))
+ {
+ *vprot |= VPROT_READ | VPROT_WRITE;
+ VIRTUAL_SetProt( view, page, page_size, *vprot );
+ set_page_vprot_bits( view, page, page_size, VPROT_READ | VPROT_WRITE, 0 );
+ mprotect_range( view, page, page_size, 0, 0 );
+ update_shared_data = TRUE;
+ }
+ /* ignore fault if page is readable now */
+ if (VIRTUAL_GetUnixProt( *vprot ) & PROT_READ) ret = STATUS_SUCCESS;
+ if (VIRTUAL_GetUnixProt( get_page_vprot( view, page )) & PROT_READ) ret = STATUS_SUCCESS;
+ else update_shared_data = FALSE;
+ }
if (!on_signal_stack && (*vprot & VPROT_GUARD))
if (!on_signal_stack && (vprot & VPROT_GUARD))
{
VIRTUAL_SetProt( view, page, page_size, *vprot & ~VPROT_GUARD );
@@ -1520,6 +1533,10 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
set_page_vprot_bits( view, page, page_size, 0, VPROT_GUARD );
@@ -1643,6 +1656,10 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
}
}
server_leave_uninterrupted_section( &csVirtual, &sigset );
@ -250,5 +250,5 @@ index ee9c8d0195..2889e8babc 100644
}
--
2.13.1
2.14.1

View File

@ -1,4 +1,4 @@
From 87487f38ad629bd54983bcef11a8a205e9da985a Mon Sep 17 00:00:00 2001
From a50d535e6d20143d4a8346e8377ee401d9b5ca9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 4 Oct 2014 03:22:09 +0200
Subject: ntdll: Properly handle PAGE_WRITECOPY protection. (try 5)
@ -9,10 +9,10 @@ For now, only enable it when a special environment variable is set.
1 file changed, 40 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 5c43d26..bf5bc22 100644
index 2d12a125a3e..84a7fecb5da 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -165,6 +165,21 @@ static const char *VIRTUAL_GetProtStr( BYTE prot )
@@ -206,6 +206,21 @@ static const char *VIRTUAL_GetProtStr( BYTE prot )
return buffer;
}
@ -34,7 +34,7 @@ index 5c43d26..bf5bc22 100644
/***********************************************************************
* VIRTUAL_GetUnixProt
@@ -178,8 +193,19 @@ static int VIRTUAL_GetUnixProt( BYTE vprot )
@@ -219,8 +234,19 @@ static int VIRTUAL_GetUnixProt( BYTE vprot )
{
if (vprot & VPROT_READ) prot |= PROT_READ;
if (vprot & VPROT_WRITE) prot |= PROT_WRITE | PROT_READ;
@ -55,48 +55,48 @@ index 5c43d26..bf5bc22 100644
if (vprot & VPROT_WRITEWATCH) prot &= ~PROT_WRITE;
}
if (!prot) prot = PROT_NONE;
@@ -1488,13 +1514,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
@@ -1625,13 +1651,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
{
void *page = ROUND_ADDR( addr, page_mask );
BYTE *vprot = &view->prot[((const char *)page - (const char *)view->base) >> page_shift];
BYTE vprot = get_page_vprot( view, page );
- if ((err & EXCEPTION_WRITE_FAULT) && (view->protect & VPROT_WRITEWATCH))
+ if (err & EXCEPTION_WRITE_FAULT)
{
- if (*vprot & VPROT_WRITEWATCH)
+ if ((view->protect & VPROT_WRITEWATCH) && (*vprot & VPROT_WRITEWATCH))
- if (vprot & VPROT_WRITEWATCH)
+ if ((view->protect & VPROT_WRITEWATCH) && (vprot & VPROT_WRITEWATCH))
{
*vprot &= ~VPROT_WRITEWATCH;
VIRTUAL_SetProt( view, page, page_size, *vprot );
set_page_vprot_bits( view, page, page_size, 0, VPROT_WRITEWATCH );
mprotect_range( view, page, page_size, 0, 0 );
}
+ if (*vprot & VPROT_WRITECOPY)
+ if (vprot & VPROT_WRITECOPY)
+ {
+ *vprot = (*vprot & ~VPROT_WRITECOPY) | VPROT_WRITE;
+ VIRTUAL_SetProt( view, page, page_size, *vprot );
+ set_page_vprot_bits( view, page, page_size, VPROT_WRITE, VPROT_WRITECOPY );
+ mprotect_range( view, page, page_size, 0, 0 );
+ }
/* ignore fault if page is writable now */
if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS;
if (VIRTUAL_GetUnixProt( get_page_vprot( view, page )) & PROT_WRITE) ret = STATUS_SUCCESS;
}
@@ -1697,14 +1728,16 @@ SIZE_T virtual_uninterrupted_write_memory( void *addr, const void *buffer, SIZE_
@@ -1841,14 +1872,16 @@ SIZE_T CDECL wine_uninterrupted_write_memory( void *addr, const void *buffer, SI
* exception. Similar to virtual_handle_fault. */
if (!(VIRTUAL_GetUnixProt( *p ) & PROT_WRITE))
if (!(VIRTUAL_GetUnixProt( vprot ) & PROT_WRITE))
{
- if (!(view->protect & VPROT_WRITEWATCH))
- break;
-
- if (*p & VPROT_WRITEWATCH)
+ if ((view->protect & VPROT_WRITEWATCH) && (*p & VPROT_WRITEWATCH))
- if (vprot & VPROT_WRITEWATCH)
+ if ((view->protect & VPROT_WRITEWATCH) && (vprot & VPROT_WRITEWATCH))
{
*p &= ~VPROT_WRITEWATCH;
VIRTUAL_SetProt( view, page, page_size, *p );
set_page_vprot_bits( view, page, page_size, 0, VPROT_WRITEWATCH );
mprotect_range( view, page, page_size, 0, 0 );
}
+ if (*p & VPROT_WRITECOPY)
+ if (vprot & VPROT_WRITECOPY)
+ {
+ *p = (*p & ~VPROT_WRITECOPY) | VPROT_WRITE;
+ VIRTUAL_SetProt( view, page, page_size, *p );
+ set_page_vprot_bits( view, page, page_size, VPROT_WRITE, VPROT_WRITECOPY );
+ mprotect_range( view, page, page_size, 0, 0 );
+ }
/* ignore fault if page is writable now */
if (!(VIRTUAL_GetUnixProt( *p ) & PROT_WRITE))
if (!(VIRTUAL_GetUnixProt( get_page_vprot( view, page )) & PROT_WRITE))
break;
--
2.8.0
2.14.1

View File

@ -52,13 +52,13 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "0b1d7ff7655c5aa7ff073f67400bd4401727183f"
echo "eb5c1872540a71ebef4703387c11c414516233f4"
}
# Show version information
version()
{
echo "Wine Staging 2.16"
echo "Wine Staging 2.17 (unreleased)"
echo "Copyright (C) 2014-2017 the Wine Staging project authors."
echo ""
echo "Patchset to be applied on upstream Wine:"

View File

@ -1,4 +1,4 @@
From c12454876971314ab43cf5519fa4534bbe962a62 Mon Sep 17 00:00:00 2001
From 49b080a1497ac9817b6fb26fdc45b5c567b5048d Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 3 Jan 2015 20:07:08 +0100
Subject: ntdll: Expose wine_uninterrupted_[read|write]_memory as exports.
@ -12,10 +12,10 @@ Subject: ntdll: Expose wine_uninterrupted_[read|write]_memory as exports.
5 files changed, 34 insertions(+), 19 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 38422ae..be5dd63 100644
index 68d7f22b192..77c4a589e15 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -1467,6 +1467,10 @@
@@ -1491,6 +1491,10 @@
# signal handling
@ cdecl __wine_set_signal_handler(long ptr)
@ -27,7 +27,7 @@ index 38422ae..be5dd63 100644
@ cdecl wine_nt_to_unix_file_name(ptr ptr long long)
@ cdecl wine_unix_to_nt_file_name(ptr ptr)
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index cbd19db..f5b5339 100644
index 48acbbfbe85..b8bbefc8a9c 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -172,8 +172,6 @@ extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLS
@ -40,10 +40,10 @@ index cbd19db..f5b5339 100644
extern void virtual_release_address_space(void) DECLSPEC_HIDDEN;
extern void virtual_set_large_address_space(void) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index 5c3aa819..cf20483 100644
index f33c43f1782..03b0f2dcdf6 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -1669,13 +1669,13 @@ static BOOL check_atl_thunk( EXCEPTION_RECORD *rec, CONTEXT *context )
@@ -1802,13 +1802,13 @@ static BOOL check_atl_thunk( EXCEPTION_RECORD *rec, CONTEXT *context )
union atl_thunk thunk_copy;
SIZE_T thunk_len;
@ -59,7 +59,7 @@ index 5c3aa819..cf20483 100644
&thunk_copy.t1.this, sizeof(DWORD) ) == sizeof(DWORD))
{
context->Eip = (DWORD_PTR)(&thunk->t1.func + 1) + thunk_copy.t1.func;
@@ -1719,11 +1719,11 @@ static BOOL check_atl_thunk( EXCEPTION_RECORD *rec, CONTEXT *context )
@@ -1852,11 +1852,11 @@ static BOOL check_atl_thunk( EXCEPTION_RECORD *rec, CONTEXT *context )
thunk_copy.t5.inst2 == 0x0460)
{
DWORD func, stack[2];
@ -75,10 +75,10 @@ index 5c3aa819..cf20483 100644
{
context->Ecx = stack[0];
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 4d4bc3b..948a790 100644
index 40dd3d16b4b..d9d96f7b7ec 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1628,13 +1628,14 @@ BOOL virtual_check_buffer_for_write( void *ptr, SIZE_T size )
@@ -1769,13 +1769,14 @@ BOOL virtual_check_buffer_for_write( void *ptr, SIZE_T size )
/***********************************************************************
@ -96,8 +96,8 @@ index 4d4bc3b..948a790 100644
{
struct file_view *view;
sigset_t sigset;
@@ -1653,10 +1654,14 @@ SIZE_T virtual_uninterrupted_read_memory( const void *addr, void *buffer, SIZE_T
while (bytes_read < size && (VIRTUAL_GetUnixProt( *p++ ) & PROT_READ))
@@ -1793,10 +1794,14 @@ SIZE_T virtual_uninterrupted_read_memory( const void *addr, void *buffer, SIZE_T
while (bytes_read < size && (VIRTUAL_GetUnixProt( get_page_vprot( view, page )) & PROT_READ))
{
SIZE_T block_size = min( size, page_size - ((UINT_PTR)addr & page_mask) );
- memcpy( buffer, addr, block_size );
@ -112,9 +112,9 @@ index 4d4bc3b..948a790 100644
+
+ addr = (const void *)((const char *)addr + block_size);
bytes_read += block_size;
page += page_size;
}
}
@@ -1667,13 +1672,14 @@ SIZE_T virtual_uninterrupted_read_memory( const void *addr, void *buffer, SIZE_T
@@ -1808,13 +1813,14 @@ SIZE_T virtual_uninterrupted_read_memory( const void *addr, void *buffer, SIZE_T
/***********************************************************************
@ -132,7 +132,7 @@ index 4d4bc3b..948a790 100644
{
struct file_view *view;
sigset_t sigset;
@@ -1711,10 +1717,14 @@ SIZE_T virtual_uninterrupted_write_memory( void *addr, const void *buffer, SIZE_
@@ -1852,10 +1858,14 @@ SIZE_T virtual_uninterrupted_write_memory( void *addr, const void *buffer, SIZE_
}
block_size = min( size, page_size - ((UINT_PTR)addr & page_mask) );
@ -151,10 +151,10 @@ index 4d4bc3b..948a790 100644
}
}
diff --git a/include/winternl.h b/include/winternl.h
index 5420391..b039dd1 100644
index df20da58c3c..5c697dd45cd 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -2680,6 +2680,9 @@ NTSYSAPI NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW,
@@ -2789,6 +2789,9 @@ NTSYSAPI NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW,
UINT disposition, BOOLEAN check_case );
NTSYSAPI NTSTATUS CDECL wine_unix_to_nt_file_name( const ANSI_STRING *name, UNICODE_STRING *nt );
@ -165,5 +165,5 @@ index 5420391..b039dd1 100644
/***********************************************************************
* Inline functions
--
2.6.1
2.14.1

View File

@ -1 +1 @@
Wine Staging 2.16
Wine Staging 2.17 (unreleased)