Rebase against 750d382f54e494771128c6b331122be2bc747484

This commit is contained in:
Paul Gofman 2019-12-13 02:37:28 +03:00
parent 2326756550
commit 45d69ec48b
4 changed files with 12 additions and 69 deletions

View File

@ -1,20 +1,20 @@
From db086c104124f1e6d06c5a492823f5e99c9095fe Mon Sep 17 00:00:00 2001
From 1111d9a53405b19b57a4385f7e2815b9c62238fa Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 6 Jun 2015 07:03:33 +0800
Subject: [PATCH] ntdll: Improve stub of NtQueryEaFile.
Based on a patch by Qian Hong.
---
dlls/ntdll/file.c | 19 ++++++++---
dlls/ntdll/tests/file.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++
dlls/ntdll/file.c | 19 ++++++++--
dlls/ntdll/tests/file.c | 83 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+), 4 deletions(-)
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 956c98a..c529b70 100644
index 2269ae311a..bed55c6fe7 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -3936,14 +3936,25 @@ NTSTATUS WINAPI NtQueryVolumeInformationFile( HANDLE handle, PIO_STATUS_BLOCK io
* Success: 0. Atrributes read into buffer
@@ -3962,14 +3962,25 @@ NTSTATUS WINAPI NtQueryVolumeInformationFile( HANDLE handle, PIO_STATUS_BLOCK io
* Success: 0. Attributes read into buffer
* Failure: An NTSTATUS error code describing the error.
*/
-NTSTATUS WINAPI NtQueryEaFile( HANDLE hFile, PIO_STATUS_BLOCK iosb, PVOID buffer, ULONG length,
@ -44,7 +44,7 @@ index 956c98a..c529b70 100644
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index a3513e2..79ba790 100644
index 1c3d0bc9a9..e210cbe9f2 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -85,6 +85,7 @@ static NTSTATUS (WINAPI *pNtQueryDirectoryFile)(HANDLE,HANDLE,PIO_APC_ROUTINE,PV
@ -55,7 +55,7 @@ index a3513e2..79ba790 100644
static WCHAR fooW[] = {'f','o','o',0};
@@ -4925,6 +4926,86 @@ static void test_flush_buffers_file(void)
@@ -4994,6 +4995,86 @@ static void test_flush_buffers_file(void)
DeleteFileA(buffer);
}
@ -142,7 +142,7 @@ index a3513e2..79ba790 100644
static void test_file_readonly_access(void)
{
static const DWORD default_sharing = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
@@ -5376,6 +5457,7 @@ START_TEST(file)
@@ -5483,6 +5564,7 @@ START_TEST(file)
pNtQueryVolumeInformationFile = (void *)GetProcAddress(hntdll, "NtQueryVolumeInformationFile");
pNtQueryFullAttributesFile = (void *)GetProcAddress(hntdll, "NtQueryFullAttributesFile");
pNtFlushBuffersFile = (void *)GetProcAddress(hntdll, "NtFlushBuffersFile");
@ -150,7 +150,7 @@ index a3513e2..79ba790 100644
test_read_write();
test_NtCreateFile();
@@ -5405,6 +5487,7 @@ START_TEST(file)
@@ -5513,6 +5595,7 @@ START_TEST(file)
test_query_volume_information_file();
test_query_attribute_information_file();
test_ioctl();
@ -159,5 +159,5 @@ index a3513e2..79ba790 100644
test_reparse_points();
}
--
1.9.1
2.23.0

View File

@ -1,37 +0,0 @@
From 9a73838c005c3bdb74a449bb7afb269112d6ae34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 20 Jan 2017 01:35:05 +0100
Subject: ole32: Correctly parse unicode property storage dictionaries.
---
dlls/ole32/stg_prop.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/ole32/stg_prop.c b/dlls/ole32/stg_prop.c
index a2598832bf1..f952704c7cd 100644
--- a/dlls/ole32/stg_prop.c
+++ b/dlls/ole32/stg_prop.c
@@ -1020,15 +1020,18 @@ static HRESULT PropertyStorage_ReadDictionary(PropertyStorage_impl *This,
if (This->codePage != CP_UNICODE)
ptr[cbEntry - 1] = '\0';
else
- *((LPWSTR)ptr + cbEntry / sizeof(WCHAR)) = '\0';
+ ((LPWSTR)ptr)[cbEntry - 1] = 0;
hr = PropertyStorage_StoreNameWithId(This, (char*)ptr, This->codePage, propid);
if (This->codePage == CP_UNICODE)
{
+ /* cbEntry is the number of characters */
+ cbEntry *= 2;
+
/* Unicode entries are padded to DWORD boundaries */
if (cbEntry % sizeof(DWORD))
ptr += sizeof(DWORD) - (cbEntry % sizeof(DWORD));
}
- ptr += sizeof(DWORD) + cbEntry;
+ ptr += cbEntry;
}
return hr;
}
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: [42046] Multiple fixes for ole32 property storage

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "5f0b5d350566a46f0f999e4cff7ad9e280fcfa05"
echo "750d382f54e494771128c6b331122be2bc747484"
}
# Show version information
@ -236,7 +236,6 @@ patch_enable_all ()
enable_nvcuvid_CUDA_Video_Support="$1"
enable_nvencodeapi_Video_Encoder="$1"
enable_ole32_HGLOBALStream="$1"
enable_ole32_STGPROP="$1"
enable_oleaut32_CreateTypeLib="$1"
enable_oleaut32_Load_Save_EMF="$1"
enable_oleaut32_OLEPictureImpl_SaveAsFile="$1"
@ -833,9 +832,6 @@ patch_enable ()
ole32-HGLOBALStream)
enable_ole32_HGLOBALStream="$2"
;;
ole32-STGPROP)
enable_ole32_STGPROP="$2"
;;
oleaut32-CreateTypeLib)
enable_oleaut32_CreateTypeLib="$2"
;;
@ -5298,21 +5294,6 @@ if test "$enable_ole32_HGLOBALStream" -eq 1; then
) >> "$patchlist"
fi
# Patchset ole32-STGPROP
# |
# | This patchset fixes the following Wine bugs:
# | * [#42046] Multiple fixes for ole32 property storage
# |
# | Modified files:
# | * dlls/ole32/stg_prop.c
# |
if test "$enable_ole32_STGPROP" -eq 1; then
patch_apply ole32-STGPROP/0001-ole32-Correctly-parse-unicode-property-storage-dicti.patch
(
printf '%s\n' '+ { "Michael Müller", "ole32: Correctly parse unicode property storage dictionaries.", 1 },';
) >> "$patchlist"
fi
# Patchset oleaut32-CreateTypeLib
# |
# | This patchset fixes the following Wine bugs: