mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against 5cf95396503d49f0249c473c1ed51e51213124c0.
This commit is contained in:
parent
42b1edd98d
commit
3faa0f1212
@ -156,7 +156,7 @@ for more details.*
|
||||
* Fix handling of ANSI NTLM credentials ([Wine Bug #37063](https://bugs.winehq.org/show_bug.cgi?id=37063))
|
||||
* Fix handling of empty section and key name for profile files. ([Wine Bug #8036](https://bugs.winehq.org/show_bug.cgi?id=8036))
|
||||
* Fix handling of invert_y in DrawTextExW ([Wine Bug #22109](https://bugs.winehq.org/show_bug.cgi?id=22109))
|
||||
* Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE ([Wine Bug #38417](https://bugs.winehq.org/show_bug.cgi?id=38417))
|
||||
* ~~Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE~~ ([Wine Bug #38417](https://bugs.winehq.org/show_bug.cgi?id=38417))
|
||||
* Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED ([Wine Bug #37876](https://bugs.winehq.org/show_bug.cgi?id=37876))
|
||||
* Fix implementation of msvcrt.close when stdout == stderr
|
||||
* Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
|
||||
|
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -20,6 +20,8 @@ wine-staging (1.7.55) UNRELEASED; urgency=low
|
||||
message loop (accepted upstream).
|
||||
* Removed patches to fix multiple issues in widl typelib generator (accepted
|
||||
upstream).
|
||||
* Removed patch to fix handling of opening read-only files for
|
||||
FILE_DELETE_ON_CLOSE (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 01 Nov 2015 01:06:20 +0100
|
||||
|
||||
wine-staging (1.7.54) unstable; urgency=low
|
||||
|
@ -1,73 +0,0 @@
|
||||
From b3c1ba550d89a4363a9b017757834e37e2d44c4e Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 10 Nov 2015 19:13:37 +0100
|
||||
Subject: include: Add missing definitions for Nt* functions.
|
||||
|
||||
Also fix the ntdll specfile for NtCreateKeyTransacted.
|
||||
---
|
||||
dlls/ntdll/ntdll.spec | 4 ++--
|
||||
include/winternl.h | 5 +++++
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index d285561..c3b6bf0 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -130,7 +130,7 @@
|
||||
@ stdcall NtCreateJobObject(ptr long ptr)
|
||||
# @ stub NtCreateJobSet
|
||||
@ stdcall NtCreateKey(ptr long ptr long ptr long long)
|
||||
-@ stdcall NtCreateKeyTransacted(ptr long ptr long ptr long long long)
|
||||
+@ stdcall NtCreateKeyTransacted(ptr long ptr long ptr long long ptr)
|
||||
@ stdcall NtCreateKeyedEvent(ptr long ptr long)
|
||||
@ stdcall NtCreateMailslotFile(long long long long long long long long)
|
||||
@ stdcall NtCreateMutant(ptr long ptr long)
|
||||
@@ -1050,7 +1050,7 @@
|
||||
@ stdcall ZwCreateJobObject(ptr long ptr) NtCreateJobObject
|
||||
# @ stub ZwCreateJobSet
|
||||
@ stdcall ZwCreateKey(ptr long ptr long ptr long long) NtCreateKey
|
||||
-@ stdcall ZwCreateKeyTransacted(ptr long ptr long ptr long long long) NtCreateKeyTransacted
|
||||
+@ stdcall ZwCreateKeyTransacted(ptr long ptr long ptr long long ptr) NtCreateKeyTransacted
|
||||
@ stdcall ZwCreateKeyedEvent(ptr long ptr long) NtCreateKeyedEvent
|
||||
@ stdcall ZwCreateMailslotFile(long long long long long long long long) NtCreateMailslotFile
|
||||
@ stdcall ZwCreateMutant(ptr long ptr long) NtCreateMutant
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index f3de636..9532b1d 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -2108,6 +2108,7 @@ NTSYSAPI NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PI
|
||||
NTSYSAPI NTSTATUS WINAPI NtCreateIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtCreateJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
|
||||
NTSYSAPI NTSTATUS WINAPI NtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG);
|
||||
+NTSYSAPI NTSTATUS WINAPI NtCreateKeyTransacted(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,ULONG,const UNICODE_STRING *,ULONG,HANDLE,ULONG *);
|
||||
NTSYSAPI NTSTATUS WINAPI NtCreateKeyedEvent(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtCreateMailslotFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,PLARGE_INTEGER);
|
||||
NTSYSAPI NTSTATUS WINAPI NtCreateMutant(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,BOOLEAN);
|
||||
@@ -2162,6 +2163,7 @@ NTSYSAPI NTSTATUS WINAPI NtMakeTemporaryObject(HANDLE);
|
||||
NTSYSAPI NTSTATUS WINAPI NtMapViewOfSection(HANDLE,HANDLE,PVOID*,ULONG,SIZE_T,const LARGE_INTEGER*,SIZE_T*,SECTION_INHERIT,ULONG,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtNotifyChangeDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,ULONG,BOOLEAN);
|
||||
NTSYSAPI NTSTATUS WINAPI NtNotifyChangeKey(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN);
|
||||
+NTSYSAPI NTSTATUS WINAPI NtNotifyChangeMultipleKeys(HANDLE,ULONG,OBJECT_ATTRIBUTES *,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
|
||||
@@ -2170,6 +2172,8 @@ NTSYSAPI NTSTATUS WINAPI NtOpenIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBU
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenKeyEx(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG);
|
||||
+NTSYSAPI NTSTATUS WINAPI NtOpenKeyTransacted(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,HANDLE);
|
||||
+NTSYSAPI NTSTATUS WINAPI NtOpenKeyTransactedEx(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,ULONG,HANDLE);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenKeyedEvent(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenMutant(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
|
||||
NTSYSAPI NTSTATUS WINAPI NtOpenObjectAuditAlarm(PUNICODE_STRING,PHANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,ACCESS_MASK,PPRIVILEGE_SET,BOOLEAN,BOOLEAN,PBOOLEAN);
|
||||
@@ -2238,6 +2242,7 @@ NTSYSAPI NTSTATUS WINAPI NtReleaseKeyedEvent(HANDLE,const void*,BOOLEAN,const L
|
||||
NTSYSAPI NTSTATUS WINAPI NtReleaseMutant(HANDLE,PLONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG_PTR,PULONG_PTR,PIO_STATUS_BLOCK,PLARGE_INTEGER);
|
||||
+NTSYSAPI NTSTATUS WINAPI NtRenameKey(HANDLE,UNICODE_STRING *);
|
||||
NTSYSAPI NTSTATUS WINAPI NtReplaceKey(POBJECT_ATTRIBUTES,HANDLE,POBJECT_ATTRIBUTES);
|
||||
NTSYSAPI NTSTATUS WINAPI NtReplyPort(HANDLE,PLPC_MESSAGE);
|
||||
NTSYSAPI NTSTATUS WINAPI NtReplyWaitReceivePort(HANDLE,PULONG,PLPC_MESSAGE,PLPC_MESSAGE);
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,47 +0,0 @@
|
||||
From 669e7933af6c854b447731c8ff34ec027f42cde4 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Wed, 11 Feb 2015 09:43:20 +0100
|
||||
Subject: ntoskrnl.exe: Add stub for ExAcquireResourceExclusiveLite.
|
||||
|
||||
---
|
||||
dlls/ntoskrnl.exe/ntoskrnl.c | 10 ++++++++++
|
||||
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
index 50e3567..1110559 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
@@ -1242,6 +1242,16 @@ NTSTATUS WINAPI ExInitializeResourceLite(PERESOURCE Resource)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
+ * ExAcquireResourceExclusiveLite (NTOSKRNL.EXE.@)
|
||||
+ */
|
||||
+BOOLEAN WINAPI ExAcquireResourceExclusiveLite(PERESOURCE resource, BOOLEAN wait)
|
||||
+{
|
||||
+ FIXME("(%p, %u): stub\n", resource, wait);
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/***********************************************************************
|
||||
* ExInitializeNPagedLookasideList (NTOSKRNL.EXE.@)
|
||||
*/
|
||||
void WINAPI ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside,
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
index 872fbee..91a01fe 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
@@ -111,7 +111,7 @@
|
||||
@ stub DbgPrompt
|
||||
@ stub DbgQueryDebugFilterState
|
||||
@ stub DbgSetDebugFilterState
|
||||
-@ stub ExAcquireResourceExclusiveLite
|
||||
+@ stdcall ExAcquireResourceExclusiveLite(ptr long)
|
||||
@ stub ExAcquireResourceSharedLite
|
||||
@ stub ExAcquireSharedStarveExclusive
|
||||
@ stub ExAcquireSharedWaitForExclusive
|
||||
--
|
||||
2.2.2
|
||||
|
@ -1,60 +0,0 @@
|
||||
From a918a1b97d96ccc4b19fc148141c9fdb4e3713cf Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Wed, 11 Feb 2015 23:56:58 +0100
|
||||
Subject: ntoskrnl.exe: Add stub for ExReleaseResourceForThreadLite.
|
||||
|
||||
---
|
||||
dlls/ntoskrnl.exe/ntoskrnl.c | 10 ++++++++++
|
||||
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
|
||||
include/ddk/wdm.h | 1 +
|
||||
3 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
index 1110559..82d9546 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
@@ -1956,6 +1956,16 @@ VOID WINAPI KeInitializeDpc(PRKDPC Dpc, PKDEFERRED_ROUTINE DeferredRoutine, PVOI
|
||||
FIXME("stub\n");
|
||||
}
|
||||
|
||||
+
|
||||
+/***********************************************************************
|
||||
+ * ExReleaseResourceForThreadLite (NTOSKRNL.EXE.@)
|
||||
+ */
|
||||
+VOID WINAPI ExReleaseResourceForThreadLite(PERESOURCE Resource, ERESOURCE_THREAD ResourceThreadId)
|
||||
+{
|
||||
+ FIXME("(%p, %08lx): stub\n", Resource, ResourceThreadId);
|
||||
+}
|
||||
+
|
||||
+
|
||||
/***********************************************************************
|
||||
* READ_REGISTER_BUFFER_UCHAR (NTOSKRNL.EXE.@)
|
||||
*/
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
index 91a01fe..b1196cb 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
@@ -168,7 +168,7 @@
|
||||
@ stub ExRaiseStatus
|
||||
@ stub ExRegisterCallback
|
||||
@ stub ExReinitializeResourceLite
|
||||
-@ stub ExReleaseResourceForThreadLite
|
||||
+@ stdcall ExReleaseResourceForThreadLite(ptr long)
|
||||
@ stub ExSemaphoreObjectType
|
||||
@ stub ExSetResourceOwnerPointer
|
||||
@ stub ExSetTimerResolution
|
||||
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
|
||||
index 0d13337..6e0eaa0 100644
|
||||
--- a/include/ddk/wdm.h
|
||||
+++ b/include/ddk/wdm.h
|
||||
@@ -31,6 +31,7 @@
|
||||
typedef LONG KPRIORITY;
|
||||
|
||||
typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
|
||||
+typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
|
||||
|
||||
struct _KDPC;
|
||||
struct _KAPC;
|
||||
--
|
||||
2.2.2
|
||||
|
@ -1,47 +0,0 @@
|
||||
From df7c17e8a733a0c665ac09275a4a3e9c5b274e2f Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Thu, 12 Feb 2015 07:11:51 +0100
|
||||
Subject: ntoskrnl.exe: Add stub for ExDeleteResourceLite.
|
||||
|
||||
---
|
||||
dlls/ntoskrnl.exe/ntoskrnl.c | 10 ++++++++++
|
||||
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
index 82d9546..715f302 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
@@ -1252,6 +1252,16 @@ BOOLEAN WINAPI ExAcquireResourceExclusiveLite(PERESOURCE resource, BOOLEAN wait)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
+ * ExDeleteResourceLite (NTOSKRNL.EXE.@)
|
||||
+ */
|
||||
+NTSTATUS WINAPI ExDeleteResourceLite(PERESOURCE resource)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", resource);
|
||||
+ return STATUS_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/***********************************************************************
|
||||
* ExInitializeNPagedLookasideList (NTOSKRNL.EXE.@)
|
||||
*/
|
||||
void WINAPI ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside,
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
index b1196cb..238c953 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
@@ -125,7 +125,7 @@
|
||||
@ stdcall ExCreateCallback(ptr ptr long long)
|
||||
@ stub ExDeleteNPagedLookasideList
|
||||
@ stub ExDeletePagedLookasideList
|
||||
-@ stub ExDeleteResourceLite
|
||||
+@ stdcall ExDeleteResourceLite(ptr)
|
||||
@ stub ExDesktopObjectType
|
||||
@ stub ExDisableResourceBoostLite
|
||||
@ stub ExEnumHandleTable
|
||||
--
|
||||
2.2.2
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "61c49bd78e5c96f14870e5c21a2ff75da7ac17b2"
|
||||
echo "5cf95396503d49f0249c473c1ed51e51213124c0"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -231,7 +231,6 @@ patch_enable_all ()
|
||||
enable_secur32_ANSI_NTLM_Credentials="$1"
|
||||
enable_server_ClipCursor="$1"
|
||||
enable_server_CreateProcess_ACLs="$1"
|
||||
enable_server_Delete_On_Close="$1"
|
||||
enable_server_FileEndOfFileInformation="$1"
|
||||
enable_server_File_Permissions="$1"
|
||||
enable_server_Inherited_ACLs="$1"
|
||||
@ -792,9 +791,6 @@ patch_enable ()
|
||||
server-CreateProcess_ACLs)
|
||||
enable_server_CreateProcess_ACLs="$2"
|
||||
;;
|
||||
server-Delete_On_Close)
|
||||
enable_server_Delete_On_Close="$2"
|
||||
;;
|
||||
server-FileEndOfFileInformation)
|
||||
enable_server_FileEndOfFileInformation="$2"
|
||||
;;
|
||||
@ -1580,9 +1576,6 @@ if test "$enable_category_stable" -eq 1; then
|
||||
if test "$enable_server_CreateProcess_ACLs" -gt 1; then
|
||||
abort "Patchset server-CreateProcess_ACLs disabled, but category-stable depends on that."
|
||||
fi
|
||||
if test "$enable_server_Delete_On_Close" -gt 1; then
|
||||
abort "Patchset server-Delete_On_Close disabled, but category-stable depends on that."
|
||||
fi
|
||||
if test "$enable_setupapi_SetupDiSetDeviceInstallParamsW" -gt 1; then
|
||||
abort "Patchset setupapi-SetupDiSetDeviceInstallParamsW disabled, but category-stable depends on that."
|
||||
fi
|
||||
@ -1700,7 +1693,6 @@ if test "$enable_category_stable" -eq 1; then
|
||||
enable_opengl32_Revert_Disable_Ext=1
|
||||
enable_server_ClipCursor=1
|
||||
enable_server_CreateProcess_ACLs=1
|
||||
enable_server_Delete_On_Close=1
|
||||
enable_setupapi_SetupDiSetDeviceInstallParamsW=1
|
||||
enable_shell32_RunDLL_CallEntry16=1
|
||||
enable_shell32_SHFileOperation_Win9x=1
|
||||
@ -3852,22 +3844,19 @@ fi
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/atom.c, dlls/ntdll/directory.c, dlls/ntdll/env.c, dlls/ntdll/error.c, dlls/ntdll/file.c, dlls/ntdll/loader.c,
|
||||
# | dlls/ntdll/nt.c, dlls/ntdll/ntdll.spec, dlls/ntdll/ntdll_misc.h, dlls/ntdll/om.c, dlls/ntdll/process.c,
|
||||
# | dlls/ntdll/reg.c, dlls/ntdll/resource.c, dlls/ntdll/sec.c, dlls/ntdll/server.c, dlls/ntdll/signal_arm.c,
|
||||
# | dlls/ntdll/signal_arm64.c, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c, dlls/ntdll/signal_x86_64.c,
|
||||
# | dlls/ntdll/sync.c, dlls/ntdll/thread.c, dlls/ntdll/time.c, dlls/ntdll/virtual.c, include/winternl.h,
|
||||
# | tools/winegcc/winegcc.c
|
||||
# | dlls/ntdll/nt.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/om.c, dlls/ntdll/process.c, dlls/ntdll/reg.c,
|
||||
# | dlls/ntdll/resource.c, dlls/ntdll/sec.c, dlls/ntdll/server.c, dlls/ntdll/signal_arm.c, dlls/ntdll/signal_arm64.c,
|
||||
# | dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c, dlls/ntdll/signal_x86_64.c, dlls/ntdll/sync.c,
|
||||
# | dlls/ntdll/thread.c, dlls/ntdll/time.c, dlls/ntdll/virtual.c, tools/winegcc/winegcc.c
|
||||
# |
|
||||
if test "$enable_ntdll_Syscall_Wrappers" -eq 1; then
|
||||
patch_apply ntdll-Syscall_Wrappers/0001-include-Add-missing-definitions-for-Nt-functions.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0002-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0003-ntdll-Use-wrapper-functions-for-syscalls.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0004-ntdll-APCs-should-call-the-implementation-instead-of.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0005-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0006-ntdll-Run-directory-initialization-function-early-du.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0007-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0001-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0003-ntdll-APCs-should-call-the-implementation-instead-of.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0004-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0005-ntdll-Run-directory-initialization-function-early-du.patch
|
||||
patch_apply ntdll-Syscall_Wrappers/0006-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "include: Add missing definitions for Nt* functions.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "winegcc: Pass '\''-read_only_relocs suppress'\'' to the linker on OSX.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "ntdll: Use wrapper functions for syscalls.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "ntdll: APCs should call the implementation instead of the syscall thunk.", 1 },';
|
||||
@ -4438,14 +4427,11 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then
|
||||
patch_apply ntoskrnl-Stubs/0007-ntoskrnl.exe-Improve-KeInitializeSemaphore-stub.patch
|
||||
patch_apply ntoskrnl-Stubs/0008-ntoskrnl.exe-Improve-KeInitializeTimerEx-stub.patch
|
||||
patch_apply ntoskrnl-Stubs/0009-ntoskrnl.exe-Fix-IoReleaseCancelSpinLock-argument.patch
|
||||
patch_apply ntoskrnl-Stubs/0010-ntoskrnl.exe-Add-stub-for-ExAcquireResourceExclusive.patch
|
||||
patch_apply ntoskrnl-Stubs/0011-ntoskrnl.exe-Add-stub-for-ExReleaseResourceForThread.patch
|
||||
patch_apply ntoskrnl-Stubs/0012-ntoskrnl.exe-Add-stub-for-ExDeleteResourceLite.patch
|
||||
patch_apply ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-MmMapLockedPages-and-MmUnmapL.patch
|
||||
patch_apply ntoskrnl-Stubs/0014-ntoskrnl.exe-Implement-KeInitializeMutex.patch
|
||||
patch_apply ntoskrnl-Stubs/0015-ntoskrnl.exe-Add-stub-for-ProbeForRead.patch
|
||||
patch_apply ntoskrnl-Stubs/0016-ntoskrnl.exe-Add-stub-for-ProbeForWrite.patch
|
||||
patch_apply ntoskrnl-Stubs/0017-ntoskrnl.exe-Add-stub-for-PsRemoveLoadImageNotifyRou.patch
|
||||
patch_apply ntoskrnl-Stubs/0010-ntoskrnl.exe-Implement-MmMapLockedPages-and-MmUnmapL.patch
|
||||
patch_apply ntoskrnl-Stubs/0011-ntoskrnl.exe-Implement-KeInitializeMutex.patch
|
||||
patch_apply ntoskrnl-Stubs/0012-ntoskrnl.exe-Add-stub-for-ProbeForRead.patch
|
||||
patch_apply ntoskrnl-Stubs/0013-ntoskrnl.exe-Add-stub-for-ProbeForWrite.patch
|
||||
patch_apply ntoskrnl-Stubs/0014-ntoskrnl.exe-Add-stub-for-PsRemoveLoadImageNotifyRou.patch
|
||||
(
|
||||
echo '+ { "Austin English", "ntoskrnl.exe: add KeWaitForMultipleObjects stub.", 1 },';
|
||||
echo '+ { "Alexander Morozov", "ntoskrnl.exe: Add stub for IoGetAttachedDeviceReference.", 1 },';
|
||||
@ -4456,9 +4442,6 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then
|
||||
echo '+ { "Alexander Morozov", "ntoskrnl.exe: Improve KeInitializeSemaphore stub.", 1 },';
|
||||
echo '+ { "Alexander Morozov", "ntoskrnl.exe: Improve KeInitializeTimerEx stub.", 1 },';
|
||||
echo '+ { "Christian Costa", "ntoskrnl.exe: Fix IoReleaseCancelSpinLock argument.", 1 },';
|
||||
echo '+ { "Christian Costa", "ntoskrnl.exe: Add stub for ExAcquireResourceExclusiveLite.", 1 },';
|
||||
echo '+ { "Christian Costa", "ntoskrnl.exe: Add stub for ExReleaseResourceForThreadLite.", 1 },';
|
||||
echo '+ { "Christian Costa", "ntoskrnl.exe: Add stub for ExDeleteResourceLite.", 1 },';
|
||||
echo '+ { "Christian Costa", "ntoskrnl.exe: Implement MmMapLockedPages and MmUnmapLockedPages.", 1 },';
|
||||
echo '+ { "Alexander Morozov", "ntoskrnl.exe: Implement KeInitializeMutex.", 1 },';
|
||||
echo '+ { "Austin English", "ntoskrnl.exe: Add stub for ProbeForRead.", 1 },';
|
||||
@ -4723,21 +4706,6 @@ if test "$enable_server_ClipCursor" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-Delete_On_Close
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38417] Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/file.c, dlls/kernel32/tests/file.c, server/fd.c
|
||||
# |
|
||||
if test "$enable_server_Delete_On_Close" -eq 1; then
|
||||
patch_apply server-Delete_On_Close/0001-server-Fix-handling-of-opening-read-only-files-with-.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "server: Fix handling of opening read-only files with FILE_DELETE_ON_CLOSE.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-FileEndOfFileInformation
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -1,86 +0,0 @@
|
||||
From 4d0561f1b3bbf5d72e49ddeb14f7ed25eb9c2d01 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 17 Apr 2015 12:40:38 +0200
|
||||
Subject: server: Fix handling of opening read-only files with
|
||||
FILE_DELETE_ON_CLOSE.
|
||||
|
||||
---
|
||||
dlls/kernel32/file.c | 3 +--
|
||||
dlls/kernel32/tests/file.c | 6 ------
|
||||
server/fd.c | 9 +++++++++
|
||||
3 files changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
|
||||
index 5ea024f..f6ee97e 100644
|
||||
--- a/dlls/kernel32/file.c
|
||||
+++ b/dlls/kernel32/file.c
|
||||
@@ -1683,8 +1683,7 @@ BOOL WINAPI DeleteFileW( LPCWSTR path )
|
||||
attr.SecurityDescriptor = NULL;
|
||||
attr.SecurityQualityOfService = NULL;
|
||||
|
||||
- status = NtCreateFile(&hFile, GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE | DELETE,
|
||||
- &attr, &io, NULL, 0,
|
||||
+ status = NtCreateFile(&hFile, SYNCHRONIZE | DELETE, &attr, &io, NULL, 0,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||
FILE_OPEN, FILE_DELETE_ON_CLOSE | FILE_NON_DIRECTORY_FILE, NULL, 0);
|
||||
if (status == STATUS_SUCCESS) status = NtClose(hFile);
|
||||
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
|
||||
index ca49863..134f877 100644
|
||||
--- a/dlls/kernel32/tests/file.c
|
||||
+++ b/dlls/kernel32/tests/file.c
|
||||
@@ -361,17 +361,13 @@ static void test__lcreat( void )
|
||||
status = NtCreateFile( &file, DELETE, &attr, &io, NULL, 0,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||
FILE_OPEN, FILE_DELETE_ON_CLOSE | FILE_NON_DIRECTORY_FILE, NULL, 0 );
|
||||
- todo_wine
|
||||
ok( status == STATUS_CANNOT_DELETE, "expected STATUS_CANNOT_DELETE, got %08x\n", status );
|
||||
if (!status) CloseHandle( file );
|
||||
|
||||
RtlFreeUnicodeString( &filenameW );
|
||||
|
||||
- todo_wine
|
||||
ok( GetFileAttributesA( filename ) != INVALID_FILE_ATTRIBUTES, "file was deleted\n" );
|
||||
- todo_wine
|
||||
ok( SetFileAttributesA(filename, FILE_ATTRIBUTE_NORMAL ) != 0, "couldn't change attributes on file\n" );
|
||||
- todo_wine
|
||||
ok( DeleteFileA( filename ) != 0, "now it should be possible to delete the file\n" );
|
||||
|
||||
filehandle = _lcreat( filename, 2 );
|
||||
@@ -1784,14 +1780,12 @@ static void test_DeleteFileA( void )
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = DeleteFileA(temp_file);
|
||||
-todo_wine
|
||||
ok(ret, "DeleteFile error %d\n", GetLastError());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = CloseHandle(hfile);
|
||||
ok(ret, "CloseHandle error %d\n", GetLastError());
|
||||
ret = DeleteFileA(temp_file);
|
||||
-todo_wine
|
||||
ok(!ret, "DeleteFile should fail\n");
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
diff --git a/server/fd.c b/server/fd.c
|
||||
index fe778f1..500d273 100644
|
||||
--- a/server/fd.c
|
||||
+++ b/server/fd.c
|
||||
@@ -1834,6 +1834,15 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
list_add_head( &inode->open, &fd->inode_entry );
|
||||
closed_fd = NULL;
|
||||
|
||||
+ /* can't unlink files we don't have permission to access */
|
||||
+ if ((options & FILE_DELETE_ON_CLOSE) && S_ISREG(st.st_mode) &&
|
||||
+ !(flags & O_CREAT) && !(st.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH)))
|
||||
+ {
|
||||
+ /* FIXME: instead of checking for O_CREAT it should check if the file was created */
|
||||
+ set_error( STATUS_CANNOT_DELETE );
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
/* check directory options */
|
||||
if ((options & FILE_DIRECTORY_FILE) && !S_ISDIR(st.st_mode))
|
||||
{
|
||||
--
|
||||
2.6.1
|
||||
|
@ -1,2 +0,0 @@
|
||||
Fixes: [38417] Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE
|
||||
Category: stable
|
Loading…
x
Reference in New Issue
Block a user