Compare commits

..

8 Commits
v7.3 ... v7.4

Author SHA1 Message Date
Alistair Leslie-Hughes
e5ddda02b5 Release v7.4 2022-03-12 12:09:52 +11:00
Alistair Leslie-Hughes
f077cbe2d3 Rebase against 330dc601978922aa1d5864d29d94882d6b1990d1. 2022-03-12 11:27:46 +11:00
Alistair Leslie-Hughes
0e1d830578 Updated server-Stored_ACLs patchset
Remove warnings.
2022-03-05 13:18:59 +11:00
Alistair Leslie-Hughes
a79a08a6f7 Rebase against 18230d23c599f1f5f9dd419dccc11c49117cc3b8. 2022-03-05 11:47:30 +11:00
Alistair Leslie-Hughes
0648126dae Rebase against 1b9d48a7b01e2b715af46bc1f8d5fe6f1529782c. 2022-03-04 12:57:42 +11:00
Alistair Leslie-Hughes
9fa3c96cff Updated windows.networking.connectivity-new-dll patchset 2022-03-04 11:02:08 +11:00
Alistair Leslie-Hughes
1ba67d1cfb Rebase against df0566d531b4454673eb71a0903986d215988e40. 2022-03-03 10:13:09 +11:00
Alistair Leslie-Hughes
8c4c65ff27 Rebase against 89a8b32d7a976504ee98ba1a7d08574bc9bc00e6. 2022-03-02 11:02:06 +11:00
64 changed files with 814 additions and 733 deletions

View File

@@ -121,7 +121,7 @@ index cacb7ea7751..19a807c1624 100644
+ WINE_TRACE("Process still running, but returning anyway\n");
+ errorlevel = 0;
+ } else {
+ WINE_TRACE("Process ended, errorlevel %d\n", errorlevel);
+ WINE_TRACE("Process ended, errorlevel %ld\n", errorlevel);
+ }
+
+ CloseHandle(pe.hProcess);
@@ -160,7 +160,7 @@ index cacb7ea7751..19a807c1624 100644
- GetExitCodeProcess (pe.hProcess, &errorlevel);
- if (errorlevel == STILL_ACTIVE) errorlevel = 0;
+ if (!status) {
+ WINE_TRACE("Failed to launch via CreateProcess, rc %d (%d)\n",
+ WINE_TRACE("Failed to launch via CreateProcess, rc %d (%ld)\n",
+ status, GetLastError());
+ break;
+ }
@@ -180,7 +180,7 @@ index cacb7ea7751..19a807c1624 100644
+ WINE_TRACE("Process still running, but returning anyway\n");
+ errorlevel = 0;
+ } else {
+ WINE_TRACE("Process ended, errorlevel %d\n", errorlevel);
+ WINE_TRACE("Process ended, errorlevel %ld\n", errorlevel);
+ }
+
+ CloseHandle(pe.hProcess);

View File

@@ -1,4 +1,4 @@
From a5045503cf3310058cc64814ff9626f4877a13bb Mon Sep 17 00:00:00 2001
From 12a9a9cb506aede4748611c8fa3339afcee7c070 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 5 Jul 2019 13:20:23 +0800
Subject: [PATCH] cryptext: Implement CryptExtOpenCER.
@@ -17,10 +17,10 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
create mode 100644 dlls/cryptext/tests/cryptext.c
diff --git a/configure b/configure
index db592f0868d..ba13abacc46 100755
index 20bcb96a2a6..b8fd60dbb53 100755
--- a/configure
+++ b/configure
@@ -20291,6 +20291,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
@@ -20910,6 +20910,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
wine_fn_config_makefile dlls/cryptdlg enable_cryptdlg
wine_fn_config_makefile dlls/cryptdll enable_cryptdll
wine_fn_config_makefile dlls/cryptext enable_cryptext
@@ -29,10 +29,10 @@ index db592f0868d..ba13abacc46 100755
wine_fn_config_makefile dlls/cryptnet/tests enable_tests
wine_fn_config_makefile dlls/cryptsp enable_cryptsp
diff --git a/configure.ac b/configure.ac
index d449b88fb19..af75e0e80ab 100644
index 6cbd947bf31..c68c5975e63 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3029,6 +3029,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
@@ -2361,6 +2361,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
WINE_CONFIG_MAKEFILE(dlls/cryptdlg)
WINE_CONFIG_MAKEFILE(dlls/cryptdll)
WINE_CONFIG_MAKEFILE(dlls/cryptext)
@@ -113,7 +113,7 @@ index 537ba66cd3b..f9e34d1f8c5 100644
+ PCCERT_CONTEXT ctx;
+ CRYPTUI_VIEWCERTIFICATE_STRUCTW info;
+
+ TRACE("(%p, %p, %s, %u)\n", hwnd, hinst, debugstr_w(filename), showcmd);
+ TRACE("(%p, %p, %s, %lu)\n", hwnd, hinst, debugstr_w(filename), showcmd);
+
+ if (!CryptQueryObject(CERT_QUERY_OBJECT_FILE, filename, CERT_QUERY_CONTENT_FLAG_CERT,
+ CERT_QUERY_FORMAT_FLAG_ALL, 0, NULL, NULL, NULL, NULL, NULL,
@@ -142,7 +142,7 @@ index 537ba66cd3b..f9e34d1f8c5 100644
+ HRESULT hr;
+ LPWSTR filenameW;
+
+ TRACE("(%p, %p, %s, %u)\n", hwnd, hinst, debugstr_a(filename), showcmd);
+ TRACE("(%p, %p, %s, %lu)\n", hwnd, hinst, debugstr_a(filename), showcmd);
+
+ filenameW = heap_strdupAtoW(filename);
+ hr = CryptExtOpenCERW(hwnd, hinst, filenameW, showcmd);
@@ -212,10 +212,10 @@ index 00000000000..cc62a772b59
+
+ SetLastError(0xdeadbeef);
+ hr = pCryptExtOpenCER(0, 0, "dead.beef", SW_HIDE);
+ ok(hr == S_OK, "got %#x\n", hr);
+ ok(hr == S_OK, "got %#lx\n", hr);
+
+ hr = pCryptExtOpenCER(0, 0, "VeriSign Class 3 Public Primary Certification Authority - G4.txt", SW_SHOW);
+ ok(hr == S_OK, "got %#x\n", hr);
+ ok(hr == S_OK, "got %#lx\n", hr);
+}
+
+START_TEST(cryptext)
@@ -227,5 +227,5 @@ index 00000000000..cc62a772b59
+ test_CryptExtOpenCER();
+}
--
2.33.0
2.34.1

View File

@@ -44,7 +44,7 @@ index e826cc89c1e..a4815f24958 100644
+ else if (type == DIDFT_RELAXIS) type = DIDFT_AXIS;
+
+ obj = dataformat_to_odf_by_type(df, inst, type);
+ TRACE("obj %p, inst 0x%08x, type 0x%08x\n", obj, inst, type);
+ TRACE("obj %p, inst 0x%08lx, type 0x%08lx\n", obj, inst, type);
+ if(obj)
+ {
+ memcpy(&obj_df[action], obj, df->dwObjSize);

View File

@@ -1,4 +1,4 @@
From 4417ee6abe20066cb1bbc784c0705885a07b3966 Mon Sep 17 00:00:00 2001
From fb71b7bedd8d2863a588473dc09a04dcd8b43b44 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Wed, 13 Jun 2018 22:25:40 -0500
Subject: [PATCH] kernel32/tests: Mark some existing tests as failing under
@@ -9,27 +9,27 @@ Subject: [PATCH] kernel32/tests: Mark some existing tests as failing under
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index 2a47abf342c..ef900dcfc04 100644
index 93cae1c84d5..b158ac905fd 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -218,7 +218,8 @@ todo_wine
@@ -223,7 +223,8 @@ static void test_mutex(void)
SetLastError(0xdeadbeef);
hOpened = OpenMutexA(GENERIC_READ | GENERIC_WRITE, FALSE, "WineTestMutex");
ok(hOpened != NULL, "OpenMutex failed with error %d\n", GetLastError());
ok(hOpened != NULL, "OpenMutex failed with error %ld\n", GetLastError());
- wait_ret = WaitForSingleObject(hOpened, INFINITE);
+ wait_ret = WaitForSingleObject(hOpened, 0);
+todo_wine_if(getenv("WINEESYNC")) /* XFAIL: validation is not implemented */
ok(wait_ret == WAIT_FAILED, "WaitForSingleObject succeeded\n");
CloseHandle(hOpened);
@@ -249,6 +250,7 @@ todo_wine
@@ -254,6 +255,7 @@ static void test_mutex(void)
SetLastError(0xdeadbeef);
ret = ReleaseMutex(hCreated);
+todo_wine_if(getenv("WINEESYNC")) /* XFAIL: due to the above */
ok(!ret && (GetLastError() == ERROR_NOT_OWNER),
"ReleaseMutex should have failed with ERROR_NOT_OWNER instead of %d\n", GetLastError());
"ReleaseMutex should have failed with ERROR_NOT_OWNER instead of %ld\n", GetLastError());
--
2.28.0
2.35.1

View File

@@ -1,4 +1,4 @@
From 775bf85e0e0614cbfe4494d7b8c47159cae5f47a Mon Sep 17 00:00:00 2001
From 8592fcfbee64b776ce90c5edc5e9b67350665213 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Wed, 13 Jun 2018 22:40:47 -0500
Subject: [PATCH] kernel32/tests: Add some semaphore tests.
@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add some semaphore tests.
1 file changed, 97 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index ef900dcfc04..26ccfdd4a54 100644
index b158ac905fd..ad6ab1adc96 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -577,7 +577,10 @@ static void test_event(void)
@@ -582,7 +582,10 @@ static void test_event(void)
static void test_semaphore(void)
{
@@ -23,8 +23,8 @@ index ef900dcfc04..26ccfdd4a54 100644
/* test case sensitivity */
@@ -619,6 +622,99 @@ static void test_semaphore(void)
ok( GetLastError() == ERROR_INVALID_PARAMETER, "wrong error %u\n", GetLastError());
@@ -624,6 +627,99 @@ static void test_semaphore(void)
ok( GetLastError() == ERROR_INVALID_PARAMETER, "wrong error %lu\n", GetLastError());
CloseHandle( handle );
+
@@ -124,5 +124,5 @@ index ef900dcfc04..26ccfdd4a54 100644
static void test_waitable_timer(void)
--
2.28.0
2.35.1

View File

@@ -1,4 +1,4 @@
From 30a65d88cd062f09f88513c377d2c7780e92e05d Mon Sep 17 00:00:00 2001
From 8790bcd9d5ff4b2e38ca00a4ba7d1d884924b25e Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Wed, 13 Jun 2018 22:59:37 -0500
Subject: [PATCH] kernel32/tests: Add some event tests.
@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add some event tests.
1 file changed, 118 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index 26ccfdd4a54..ea54cb069df 100644
index ad6ab1adc96..95f51f54b83 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -464,12 +464,13 @@ static void test_slist(void)
@@ -469,12 +469,13 @@ static void test_slist(void)
static void test_event(void)
{
@@ -26,8 +26,8 @@ index 26ccfdd4a54..ea54cb069df 100644
/* no sd */
handle = CreateEventA(NULL, FALSE, FALSE, __FILE__ ": Test Event");
@@ -573,6 +574,122 @@ static void test_event(void)
ok( ret, "QueryMemoryResourceNotification failed err %u\n", GetLastError() );
@@ -578,6 +579,122 @@ static void test_event(void)
ok( ret, "QueryMemoryResourceNotification failed err %lu\n", GetLastError() );
ok( val == FALSE || val == TRUE, "wrong value %u\n", val );
CloseHandle( handle );
+
@@ -150,5 +150,5 @@ index 26ccfdd4a54..ea54cb069df 100644
static void test_semaphore(void)
--
2.28.0
2.35.1

View File

@@ -1,4 +1,4 @@
From 0596227ece99953785e8165d9c983114da77721c Mon Sep 17 00:00:00 2001
From 9d683eab1efae1c8dcd5b571e8a31ac0f13fc563 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Wed, 13 Jun 2018 23:58:01 -0500
Subject: [PATCH] kernel32/tests: Add some tests for wait timeouts.
@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add some tests for wait timeouts.
1 file changed, 68 insertions(+)
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index 790b7bfe797..6e4916f6bc3 100644
index 4685b7bec06..117edf12fb6 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -54,6 +54,7 @@ static BOOLEAN (WINAPI *pTryAcquireSRWLockShared)(PSRWLOCK);
@@ -57,6 +57,7 @@ static BOOLEAN (WINAPI *pTryAcquireSRWLockShared)(PSRWLOCK);
static NTSTATUS (WINAPI *pNtAllocateVirtualMemory)(HANDLE, PVOID *, ULONG_PTR, SIZE_T *, ULONG, ULONG);
static NTSTATUS (WINAPI *pNtFreeVirtualMemory)(HANDLE, PVOID *, SIZE_T *, ULONG);
@@ -19,7 +19,7 @@ index 790b7bfe797..6e4916f6bc3 100644
static NTSTATUS (WINAPI *pNtWaitForSingleObject)(HANDLE, BOOLEAN, const LARGE_INTEGER *);
static NTSTATUS (WINAPI *pNtWaitForMultipleObjects)(ULONG,const HANDLE*,BOOLEAN,BOOLEAN,const LARGE_INTEGER*);
static PSLIST_ENTRY (__fastcall *pRtlInterlockedPushListSList)(PSLIST_HEADER list, PSLIST_ENTRY first,
@@ -1480,11 +1481,15 @@ static HANDLE modify_handle(HANDLE handle, DWORD modify)
@@ -1485,11 +1486,15 @@ static HANDLE modify_handle(HANDLE handle, DWORD modify)
return ULongToHandle(tmp);
}
@@ -35,9 +35,9 @@ index 790b7bfe797..6e4916f6bc3 100644
DWORD ret;
signaled = CreateEventW(NULL, TRUE, TRUE, NULL);
@@ -1569,6 +1574,68 @@ static void test_WaitForSingleObject(void)
@@ -1574,6 +1579,68 @@ static void test_WaitForSingleObject(void)
status = pNtWaitForSingleObject(GetCurrentThread(), FALSE, &timeout);
ok(status == STATUS_TIMEOUT, "expected STATUS_TIMEOUT, got %08x\n", status);
ok(status == STATUS_TIMEOUT, "expected STATUS_TIMEOUT, got %08lx\n", status);
+ ret = WaitForSingleObject( signaled, 0 );
+ ok(ret == 0, "got %u\n", ret);
@@ -104,7 +104,7 @@ index 790b7bfe797..6e4916f6bc3 100644
CloseHandle(signaled);
CloseHandle(nonsignaled);
}
@@ -3037,6 +3104,7 @@ START_TEST(sync)
@@ -3113,6 +3180,7 @@ START_TEST(sync)
pTryAcquireSRWLockShared = (void *)GetProcAddress(hdll, "TryAcquireSRWLockShared");
pNtAllocateVirtualMemory = (void *)GetProcAddress(hntdll, "NtAllocateVirtualMemory");
pNtFreeVirtualMemory = (void *)GetProcAddress(hntdll, "NtFreeVirtualMemory");
@@ -113,5 +113,5 @@ index 790b7bfe797..6e4916f6bc3 100644
pNtWaitForMultipleObjects = (void *)GetProcAddress(hntdll, "NtWaitForMultipleObjects");
pRtlInterlockedPushListSList = (void *)GetProcAddress(hntdll, "RtlInterlockedPushListSList");
--
2.28.0
2.35.1

View File

@@ -2493,7 +2493,7 @@ index c72a12955b8..87d11472ff0 100644
+ This->hr = S_OK;
+ else
+ {
+ ERR("CopyFile failed: %u\n", GetLastError());
+ ERR("CopyFile failed: %lu\n", GetLastError());
+ This->hr = E_FAIL;
+ }
+
@@ -3076,7 +3076,7 @@ index c72a12955b8..87d11472ff0 100644
InstallEngine *This = impl_from_IInstallEngine2(iface);
- FIXME("(%p)->(%d %p)\n", This, index, id);
+
+ FIXME("(%p)->(%lu %p): stub\n", This, index, id);
+ FIXME("(%p)->(%u %p): stub\n", This, index, id);
+
return E_NOTIMPL;
}
@@ -3090,7 +3090,7 @@ index c72a12955b8..87d11472ff0 100644
+ ICifComponent *comp;
+ HRESULT hr;
+
+ TRACE("(%p)->(%lu %p)\n", This, index, id);
+ TRACE("(%p)->(%u %p)\n", This, index, id);
+
+ if (!This->icif || !id)
+ return E_FAIL;

View File

@@ -1,4 +1,4 @@
From f29eb0b6a2b555beea0c29e9202c218ef31311b6 Mon Sep 17 00:00:00 2001
From 519a979a6d7c304c65f198b64495f4fd36482fbc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 26 Feb 2015 06:41:26 +0100
Subject: [PATCH] kernelbase: Add support for progress callback in CopyFileEx.
@@ -9,38 +9,38 @@ Subject: [PATCH] kernelbase: Add support for progress callback in CopyFileEx.
2 files changed, 71 insertions(+), 12 deletions(-)
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index f8e49491a7d..74c13ff11d0 100644
index 77174d43d5b..4bd9f790cc0 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -1169,23 +1169,17 @@ static void test_CopyFileEx(void)
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError());
@@ -1170,23 +1170,17 @@ static void test_CopyFileEx(void)
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %ld\n", GetLastError());
SetLastError(0xdeadbeef);
retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0);
- todo_wine
ok(!retok, "CopyFileExA unexpectedly succeeded\n");
- todo_wine
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %ld\n", GetLastError());
ok(GetFileAttributesA(dest) != INVALID_FILE_ATTRIBUTES, "file was deleted\n");
hfile = CreateFileA(dest, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_DELETE,
NULL, OPEN_EXISTING, 0, 0);
- todo_wine
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError());
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %ld\n", GetLastError());
SetLastError(0xdeadbeef);
retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0);
- todo_wine
ok(!retok, "CopyFileExA unexpectedly succeeded\n");
- todo_wine
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %ld\n", GetLastError());
- todo_wine
ok(GetFileAttributesA(dest) == INVALID_FILE_ATTRIBUTES, "file was not deleted\n");
retok = CopyFileExA(source, NULL, copy_progress_cb, hfile, NULL, 0);
diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c
index c6dc904044a..b9ba1bd7c26 100644
index 02c2e841f85..cabbe2d17c1 100644
--- a/dlls/kernelbase/file.c
+++ b/dlls/kernelbase/file.c
@@ -499,11 +499,16 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
@@ -500,11 +500,16 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
{
static const int buffer_size = 65536;
HANDLE h1, h2;
@@ -58,7 +58,7 @@ index c6dc904044a..b9ba1bd7c26 100644
if (!source || !dest)
{
@@ -518,7 +523,15 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
@@ -519,7 +524,15 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
TRACE("%s -> %s, %lx\n", debugstr_w(source), debugstr_w(dest), flags);
@@ -75,7 +75,7 @@ index c6dc904044a..b9ba1bd7c26 100644
NULL, OPEN_EXISTING, 0, 0 )) == INVALID_HANDLE_VALUE)
{
WARN("Unable to open source %s\n", debugstr_w(source));
@@ -526,7 +539,7 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
@@ -527,7 +540,7 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
return FALSE;
}
@@ -84,7 +84,7 @@ index c6dc904044a..b9ba1bd7c26 100644
{
WARN("GetFileInformationByHandle returned error for %s\n", debugstr_w(source));
HeapFree( GetProcessHeap(), 0, buffer );
@@ -552,7 +565,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
@@ -553,7 +566,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
}
}
@@ -97,7 +97,7 @@ index c6dc904044a..b9ba1bd7c26 100644
(flags & COPY_FILE_FAIL_IF_EXISTS) ? CREATE_NEW : CREATE_ALWAYS,
info.FileAttributes, h1 )) == INVALID_HANDLE_VALUE)
{
@@ -562,6 +579,29 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
@@ -563,6 +580,29 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
return FALSE;
}
@@ -127,7 +127,7 @@ index c6dc904044a..b9ba1bd7c26 100644
while (ReadFile( h1, buffer, buffer_size, &count, NULL ) && count)
{
char *p = buffer;
@@ -571,13 +611,38 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
@@ -572,13 +612,38 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
if (!WriteFile( h2, p, count, &res, NULL ) || !res) goto done;
p += res;
count -= res;

View File

@@ -1,4 +1,4 @@
From 5d8e7efe186c9a49005e1451ac04e4fc8f9bb2b8 Mon Sep 17 00:00:00 2001
From 58eba4970c0ab92c7554d76eaa5e4f6571506dbc Mon Sep 17 00:00:00 2001
From: Mark Jansen <mark.jansen@reactos.org>
Date: Sun, 24 Sep 2017 22:45:22 +0200
Subject: [PATCH] kernel32/tests: Add tests for job object accounting
@@ -9,11 +9,11 @@ Signed-off-by: Mark Jansen <mark.jansen@reactos.org>
1 file changed, 95 insertions(+)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index 52c3036fe59..1b72f8f4466 100644
index e9e8555c32e..32318ecdffd 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -2541,6 +2541,69 @@ static void _create_process(int line, const char *command, LPPROCESS_INFORMATION
ok_(__FILE__, line)(ret, "CreateProcess error %u\n", GetLastError());
ok_(__FILE__, line)(ret, "CreateProcess error %lu\n", GetLastError());
}
+#define test_assigned_proc(job, ...) _test_assigned_proc(__LINE__, job, __VA_ARGS__)
@@ -84,30 +84,30 @@ index 52c3036fe59..1b72f8f4466 100644
{
@@ -2566,11 +2629,15 @@ static void test_IsProcessInJob(void)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 0);
+ test_accounting(job, 0, 0, 0);
out = TRUE;
ret = pIsProcessInJob(pi.hProcess, job2, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job2, 0);
+ test_accounting(job2, 0, 0, 0);
ret = pAssignProcessToJobObject(job, pi.hProcess);
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
@@ -2579,11 +2646,15 @@ static void test_IsProcessInJob(void)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 1, pi.dwProcessId);
+ test_accounting(job, 1, 1, 0);
out = TRUE;
ret = pIsProcessInJob(pi.hProcess, job2, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job2, 0);
+ test_accounting(job2, 0, 0, 0);
@@ -116,7 +116,7 @@ index 52c3036fe59..1b72f8f4466 100644
ret = pIsProcessInJob(pi.hProcess, NULL, &out);
@@ -2597,6 +2668,8 @@ static void test_IsProcessInJob(void)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 0);
+ test_accounting(job, 1, 0, 0);
@@ -126,28 +126,28 @@ index 52c3036fe59..1b72f8f4466 100644
@@ -2613,11 +2686,15 @@ static void test_TerminateJobObject(void)
job = pCreateJobObjectW(NULL, NULL);
ok(job != NULL, "CreateJobObject error %u\n", GetLastError());
ok(job != NULL, "CreateJobObject error %lu\n", GetLastError());
+ test_assigned_proc(job, 0);
+ test_accounting(job, 0, 0, 0);
create_process("wait", &pi);
ret = pAssignProcessToJobObject(job, pi.hProcess);
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
+ test_assigned_proc(job, 1, pi.dwProcessId);
+ test_accounting(job, 1, 1, 0);
ret = pTerminateJobObject(job, 123);
ok(ret, "TerminateJobObject error %u\n", GetLastError());
ok(ret, "TerminateJobObject error %lu\n", GetLastError());
@@ -2626,6 +2703,8 @@ static void test_TerminateJobObject(void)
dwret = WaitForSingleObject(pi.hProcess, 1000);
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", dwret);
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %lu\n", dwret);
if (dwret == WAIT_TIMEOUT) TerminateProcess(pi.hProcess, 0);
+ test_assigned_proc(job, 0);
+ test_accounting(job, 1, 0, 0);
ret = GetExitCodeProcess(pi.hProcess, &dwret);
ok(ret, "GetExitCodeProcess error %u\n", GetLastError());
ok(ret, "GetExitCodeProcess error %lu\n", GetLastError());
@@ -2643,6 +2722,8 @@ static void test_TerminateJobObject(void)
ret = pAssignProcessToJobObject(job, pi.hProcess);
ok(!ret, "AssignProcessToJobObject unexpectedly succeeded\n");
@@ -157,41 +157,41 @@ index 52c3036fe59..1b72f8f4466 100644
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
@@ -2850,11 +2931,15 @@ static void test_KillOnJobClose(void)
@@ -2841,11 +2922,15 @@ static void test_KillOnJobClose(void)
return;
}
ok(ret, "SetInformationJobObject error %u\n", GetLastError());
ok(ret, "SetInformationJobObject error %lu\n", GetLastError());
+ test_assigned_proc(job, 0);
+ test_accounting(job, 0, 0, 0);
create_process("wait", &pi);
ret = pAssignProcessToJobObject(job, pi.hProcess);
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
+ test_assigned_proc(job, 1, pi.dwProcessId);
+ test_accounting(job, 1, 1, 0);
CloseHandle(job);
@@ -2964,6 +3049,8 @@ static HANDLE test_AddSelfToJob(void)
@@ -2955,6 +3040,8 @@ static HANDLE test_AddSelfToJob(void)
ret = pAssignProcessToJobObject(job, GetCurrentProcess());
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
+ test_assigned_proc(job, 1, GetCurrentProcessId());
+ test_accounting(job, 1, 1, 0);
return job;
}
@@ -2985,6 +3072,8 @@ static void test_jobInheritance(HANDLE job)
@@ -2976,6 +3063,8 @@ static void test_jobInheritance(HANDLE job)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 2, GetCurrentProcessId(), pi.dwProcessId);
+ test_accounting(job, 2, 2, 0);
wait_and_close_child_process(&pi);
}
@@ -3018,6 +3107,8 @@ static void test_BreakawayOk(HANDLE parent_job)
@@ -3009,6 +3098,8 @@ static void test_BreakawayOk(HANDLE parent_job)
ret = CreateProcessA(NULL, buffer, NULL, NULL, FALSE, CREATE_BREAKAWAY_FROM_JOB, NULL, NULL, &si, &pi);
ok(!ret, "CreateProcessA expected failure\n");
expect_eq_d(ERROR_ACCESS_DENIED, GetLastError());
@@ -200,18 +200,18 @@ index 52c3036fe59..1b72f8f4466 100644
if (ret)
{
@@ -3057,6 +3148,8 @@ static void test_BreakawayOk(HANDLE parent_job)
@@ -3048,6 +3139,8 @@ static void test_BreakawayOk(HANDLE parent_job)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 1, GetCurrentProcessId());
+ test_accounting(job, 2, 1, 0);
ret = pIsProcessInJob(pi.hProcess, parent_job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
@@ -3074,6 +3167,8 @@ static void test_BreakawayOk(HANDLE parent_job)
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
@@ -3065,6 +3158,8 @@ static void test_BreakawayOk(HANDLE parent_job)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 1, GetCurrentProcessId());
+ test_accounting(job, 2, 1, 0);
@@ -219,5 +219,5 @@ index 52c3036fe59..1b72f8f4466 100644
wait_and_close_child_process(&pi);
--
2.30.2
2.35.1

View File

@@ -1,4 +1,4 @@
From 214c0a64d5f0f3733c3e370f2a75329153617b2f Mon Sep 17 00:00:00 2001
From bef93835ceb4a482c348b0aa6e62ce4fee5e3f35 Mon Sep 17 00:00:00 2001
From: Zhenbo Li <litimetal@gmail.com>
Date: Tue, 1 Jul 2014 19:45:43 +0800
Subject: [PATCH] mshtml: Add IHTMLLocation::hash property's getter
@@ -10,10 +10,10 @@ Subject: [PATCH] mshtml: Add IHTMLLocation::hash property's getter
2 files changed, 61 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/htmllocation.c b/dlls/mshtml/htmllocation.c
index 7d102044c..a6d689397 100644
index 8f7800ff2a3..2b42939a39f 100644
--- a/dlls/mshtml/htmllocation.c
+++ b/dlls/mshtml/htmllocation.c
@@ -526,8 +526,15 @@ static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p)
@@ -524,8 +524,15 @@ static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p)
static HRESULT WINAPI HTMLLocation_put_hash(IHTMLLocation *iface, BSTR v)
{
HTMLLocation *This = impl_from_IHTMLLocation(iface);
@@ -32,7 +32,7 @@ index 7d102044c..a6d689397 100644
static HRESULT WINAPI HTMLLocation_get_hash(IHTMLLocation *iface, BSTR *p)
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index e473ee0f2..242ebbeee 100644
index ff050863b6f..2c118d89d1d 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -5963,6 +5963,56 @@ static void test_Persist(IHTMLDocument2 *doc, IMoniker *mon)
@@ -93,7 +93,7 @@ index e473ee0f2..242ebbeee 100644
BOOL is_hash, DWORD dwl_flags)
{
@@ -6148,7 +6198,7 @@ static void test_load_history(IHTMLDocument2 *doc)
ok(hres == S_OK, "Could not get IPersistHistory iface: %08x\n", hres);
ok(hres == S_OK, "Could not get IPersistHistory iface: %08lx\n", hres);
prev_url = nav_url;
- nav_url = L"http://test.winehq.org/tests/winehq_snapshot/#test";
@@ -101,7 +101,7 @@ index e473ee0f2..242ebbeee 100644
nav_serv_url = L"http://test.winehq.org/tests/winehq_snapshot/";
SET_EXPECT(Exec_ShellDocView_138);
@@ -7915,6 +7965,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
@@ -8017,6 +8067,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
nav_url = nav_serv_url = L"http://test.winehq.org/tests/winehq_snapshot/"; /* for valid prev nav_url */
if(support_wbapp) {
test_put_href(doc, FALSE, L"#test", L"http://test.winehq.org/tests/winehq_snapshot/#test", FALSE, TRUE, 0);
@@ -110,5 +110,5 @@ index e473ee0f2..242ebbeee 100644
test_refresh(doc);
}
--
2.25.0
2.34.1

View File

@@ -28,7 +28,7 @@ index 274db8c22b..ba02e811cc 100644
+ break;
+ case WM_KEYUP:
+ {
+ TRACE("Processing key %ld\n", lpmsg->wParam);
+ TRACE("Processing key %I64d\n", lpmsg->wParam);
+ if (lpmsg->wParam == VK_F5)
+ hres = IOleCommandTarget_Exec(&This->IOleCommandTarget_iface, NULL, OLECMDID_REFRESH, 0, NULL, NULL);
+
@@ -38,7 +38,7 @@ index 274db8c22b..ba02e811cc 100644
+ FIXME("Unsupported message %04x\n", lpmsg->message);
+ }
+
+ TRACE("result 0x%08x\n", hres);
+ TRACE("result 0x%08lx\n", hres);
+ return hres;
}

View File

@@ -1,4 +1,4 @@
From a1b46c58e7663a0c17d5dd2fbb3cc82fde40a06c Mon Sep 17 00:00:00 2001
From 7acf9c0e6c7f4bf86b1946778366b529a42fa660 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: [PATCH] ntdll: Fix holes in ELF mappings. (v2)
@@ -10,10 +10,10 @@ Based on a patch by Andrew Wesie.
2 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 209a2647d16..2fbb5922359 100644
index 0c1c91750ea..c4fcf43543f 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -1021,6 +1021,16 @@ static inline BOOL is_write_watch_range( const void *addr, size_t size )
@@ -1210,6 +1210,16 @@ static inline BOOL is_write_watch_range( const void *addr, size_t size )
}
@@ -30,7 +30,7 @@ index 209a2647d16..2fbb5922359 100644
/***********************************************************************
* find_view_range
*
@@ -3051,6 +3061,19 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
@@ -3416,6 +3426,19 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
/* ignore fault if page is writable now */
if (get_unix_prot( get_page_vprot( page ) ) & PROT_WRITE) ret = STATUS_SUCCESS;
}
@@ -51,10 +51,10 @@ index 209a2647d16..2fbb5922359 100644
return ret;
}
diff --git a/dlls/psapi/tests/psapi_main.c b/dlls/psapi/tests/psapi_main.c
index d85099455aa..be12af58311 100644
index 519e39c3df0..c29168646e8 100644
--- a/dlls/psapi/tests/psapi_main.c
+++ b/dlls/psapi/tests/psapi_main.c
@@ -195,6 +195,7 @@ todo_wine
@@ -194,6 +194,7 @@ static void test_EnumProcessModules(void)
static void test_GetModuleInformation(void)
{
HMODULE hMod = GetModuleHandleA(NULL);
@@ -62,29 +62,29 @@ index d85099455aa..be12af58311 100644
MODULEINFO info;
DWORD ret;
@@ -214,10 +215,21 @@ static void test_GetModuleInformation(void)
@@ -213,10 +214,21 @@ static void test_GetModuleInformation(void)
GetModuleInformation(hpQV, hMod, &info, sizeof(info)-1);
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "expected error=ERROR_INSUFFICIENT_BUFFER but got %d\n", GetLastError());
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "expected error=ERROR_INSUFFICIENT_BUFFER but got %ld\n", GetLastError());
- SetLastError(0xdeadbeef);
ret = GetModuleInformation(hpQV, hMod, &info, sizeof(info));
ok(ret == 1, "failed with %d\n", GetLastError());
ok(ret == 1, "failed with %ld\n", GetLastError());
ok(info.lpBaseOfDll == hMod, "lpBaseOfDll=%p hMod=%p\n", info.lpBaseOfDll, hMod);
+
+ hMod = LoadLibraryA("shell32.dll");
+ ok(hMod != NULL, "Failed to load shell32.dll, error: %u\n", GetLastError());
+ ok(hMod != NULL, "Failed to load shell32.dll, error: %lu\n", GetLastError());
+
+ ret = GetModuleInformation(hpQV, hMod, &info, sizeof(info));
+ ok(ret == 1, "failed with %d\n", GetLastError());
+ ok(ret == 1, "failed with %lu\n", GetLastError());
+ info.SizeOfImage /= sizeof(DWORD);
+ for (tmp = (DWORD *)hMod; info.SizeOfImage; info.SizeOfImage--)
+ counter ^= *tmp++;
+ trace("xor of shell32: %08x\n", counter);
+ trace("xor of shell32: %08lx\n", counter);
+
+ FreeLibrary(hMod);
}
static BOOL check_with_margin(SIZE_T perf, SIZE_T sysperf, int margin)
--
2.28.0
2.34.1

View File

@@ -1,4 +1,4 @@
From 11107a30f5ddc2065d2b254fad2d10bc158a1ebb Mon Sep 17 00:00:00 2001
From 80cb1bf9077b1e754fc2f3426229733c3417c397 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Tue, 19 Aug 2014 22:10:49 -0600
Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
@@ -10,18 +10,18 @@ Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
2 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index d621ae6e712..3ddff238d74 100644
index c68c5975e63..84efc670ca4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -65,6 +65,7 @@ AC_ARG_WITH(usb, AS_HELP_STRING([--without-usb],[do not use the libusb lib
@@ -64,6 +64,7 @@ AC_ARG_WITH(unwind, AS_HELP_STRING([--without-unwind],[do not use the libunwi
AC_ARG_WITH(usb, AS_HELP_STRING([--without-usb],[do not use the libusb library]))
AC_ARG_WITH(v4l2, AS_HELP_STRING([--without-v4l2],[do not use v4l2 (video capture)]))
AC_ARG_WITH(vkd3d, AS_HELP_STRING([--without-vkd3d],[do not use vkd3d (Direct3D 12 support)]))
AC_ARG_WITH(vulkan, AS_HELP_STRING([--without-vulkan],[do not use Vulkan]))
+AC_ARG_WITH(xattr, AS_HELP_STRING([--without-xattr],[do not use xattr (security attributes support)]))
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
@@ -642,6 +643,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
@@ -634,6 +635,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
#include <sys/queue.h>
#endif])
@@ -40,7 +40,7 @@ index d621ae6e712..3ddff238d74 100644
AC_SUBST(DLLFLAGS,"")
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index e459087af76..0b6e5d3b6a7 100644
index a29b5cbb980..1ae4645c6fb 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -98,6 +98,9 @@
@@ -118,5 +118,5 @@ index e459087af76..0b6e5d3b6a7 100644
}
--
2.33.0
2.34.1

View File

@@ -159,7 +159,7 @@ index 5ed116d94d9..35ae5ab854a 100644
- nt_dest.Length = dest_len;
+ if (flags == SYMLINK_FLAG_RELATIVE)
+ {
+ SIZE_T nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
+ ULONG nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
+ WCHAR *nt_path;
+
+ /* resolve the NT path of the source */

View File

@@ -1,7 +1,7 @@
From 96a9115e57cee4a11675d1fff5125155b6b213fb Mon Sep 17 00:00:00 2001
From 1d139a330669c7d650a95c08872e11da8d9d28f6 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
Date: Mon, 3 May 2021 09:28:08 -0600
Subject: ntdll: Add support for creating Unix/Linux symlinks.
Subject: [PATCH] ntdll: Add support for creating Unix/Linux symlinks.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
---
@@ -10,7 +10,7 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
2 files changed, 65 insertions(+), 8 deletions(-)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 18887895e40..bff3b18ce83 100644
index e4eb36e31b3..6f647ddcca5 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -5390,7 +5390,9 @@ static void test_reparse_points(void)
@@ -72,10 +72,10 @@ index 18887895e40..bff3b18ce83 100644
/* Cleanup */
pRtlFreeUnicodeString(&nameW);
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 752561931ab..0c2117ca801 100644
index 323bf865631..c146fc70639 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -6031,18 +6031,18 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
@@ -6024,18 +6024,18 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
{
BOOL src_allocated = FALSE, path_allocated = FALSE, dest_allocated = FALSE;
BOOL nt_dest_allocated = FALSE, tempdir_created = FALSE;
@@ -97,7 +97,7 @@ index 752561931ab..0c2117ca801 100644
ULONG flags;
int i;
@@ -6060,6 +6060,12 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
@@ -6053,6 +6053,12 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
dest = &buffer->SymbolicLinkReparseBuffer.PathBuffer[offset];
flags = buffer->SymbolicLinkReparseBuffer.Flags;
break;
@@ -110,7 +110,7 @@ index 752561931ab..0c2117ca801 100644
default:
FIXME("stub: FSCTL_SET_REPARSE_POINT(%x)\n", buffer->ReparseTag);
return STATUS_NOT_IMPLEMENTED;
@@ -6071,6 +6077,9 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
@@ -6064,6 +6070,9 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
if ((status = server_get_unix_name( handle, &unix_src, FALSE )))
goto cleanup;
src_allocated = TRUE;
@@ -119,8 +119,8 @@ index 752561931ab..0c2117ca801 100644
+
if (flags == SYMLINK_FLAG_RELATIVE)
{
SIZE_T nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
@@ -6146,6 +6155,8 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
ULONG nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
@@ -6139,6 +6148,8 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
if (status != STATUS_SUCCESS && status != STATUS_NO_SUCH_FILE)
goto cleanup;
dest_allocated = TRUE;
@@ -129,7 +129,7 @@ index 752561931ab..0c2117ca801 100644
/* check that the source and destination paths are the same up to the relative path */
if (flags == SYMLINK_FLAG_RELATIVE)
{
@@ -6161,14 +6172,17 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
@@ -6154,14 +6165,17 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
/* Encode the reparse tag into the symlink */
strcpy( magic_dest, "" );
@@ -153,5 +153,5 @@ index 752561931ab..0c2117ca801 100644
/* Encode the type (file or directory) if NT symlink */
if (buffer->ReparseTag == IO_REPARSE_TAG_SYMLINK)
--
2.17.1
2.34.1

View File

@@ -0,0 +1,71 @@
From 8c6455d6be0cba8dc98a95726d9d289089c2bf67 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 5 Mar 2022 11:08:23 +1100
Subject: [PATCH] Fix warnings
These need to be merged into the patches above.
---
dlls/ntdll/unix/file.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 787616aa675..ee4f31a1e38 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -6150,16 +6150,14 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
/* re-resolve the unix path for the source */
for (;;)
{
- UNICODE_STRING nt_path_tmp;
+ OBJECT_ATTRIBUTES attr;
unix_path = malloc( unix_path_len );
if (!unix_path)
{
status = STATUS_NO_MEMORY;
goto cleanup;
}
- nt_path_tmp.Buffer = nt_path;
- nt_path_tmp.Length = wcslen(nt_path) * sizeof(WCHAR);
- status = wine_nt_to_unix_file_name( &nt_path_tmp, unix_path, &unix_path_len, FALSE );
+ status = wine_nt_to_unix_file_name( &attr, unix_path, &unix_path_len, FILE_OPEN_IF );
if (status != STATUS_BUFFER_TOO_SMALL) break;
free( unix_path );
}
@@ -6182,13 +6180,15 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
/* resolve the NT path of the destination */
for (;;)
{
+ OBJECT_ATTRIBUTES attr;
+ ULONG len = unix_dest_len;
unix_dest = malloc( unix_dest_len );
if (!unix_dest)
{
status = STATUS_NO_MEMORY;
goto cleanup;
}
- status = wine_nt_to_unix_file_name( &nt_dest, unix_dest, &unix_dest_len, FILE_WINE_PATH );
+ status = wine_nt_to_unix_file_name( &attr, unix_dest, &len, FILE_WINE_PATH );
if (status != STATUS_BUFFER_TOO_SMALL) break;
free( unix_dest );
}
@@ -6447,13 +6447,15 @@ NTSTATUS get_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer, ULONG *si
/* resolve the NT path */
for (;;)
{
+ ULONG len;
nt_dest = malloc( nt_dest_len * sizeof(WCHAR) );
if (!nt_dest)
{
status = STATUS_NO_MEMORY;
goto cleanup;
}
- status = wine_unix_to_nt_file_name( unix_dest, nt_dest, &nt_dest_len );
+ status = wine_unix_to_nt_file_name( unix_dest, nt_dest, &len );
+ nt_dest_len = len;
if (status != STATUS_BUFFER_TOO_SMALL) break;
free( nt_dest );
}
--
2.34.1

View File

@@ -1,4 +1,4 @@
From f444edc19e67ef0a903728804f50e13ccbfac16e Mon Sep 17 00:00:00 2001
From 82663e728099ca8f0127dcdf8d62d551eda6902c Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 28 Apr 2016 18:14:36 +0800
Subject: [PATCH] ntdll: Implement NtSetLdtEntries.
@@ -9,18 +9,18 @@ Subject: [PATCH] ntdll: Implement NtSetLdtEntries.
2 files changed, 80 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
index a9869863b44..2c2a0fda843 100644
index 3cf58d928ae..78f9bbeb493 100644
--- a/dlls/kernel32/tests/thread.c
+++ b/dlls/kernel32/tests/thread.c
@@ -99,6 +99,7 @@ static BOOL (WINAPI *pSetThreadGroupAffinity)(HANDLE,const GROUP_AFFINITY*,GROUP
static NTSTATUS (WINAPI *pNtSetInformationThread)(HANDLE,THREADINFOCLASS,LPCVOID,ULONG);
static HRESULT (WINAPI *pSetThreadDescription)(HANDLE,const WCHAR *);
@@ -102,6 +102,7 @@ static HRESULT (WINAPI *pSetThreadDescription)(HANDLE,const WCHAR *);
static HRESULT (WINAPI *pGetThreadDescription)(HANDLE,WCHAR **);
static PVOID (WINAPI *pRtlAddVectoredExceptionHandler)(ULONG,PVECTORED_EXCEPTION_HANDLER);
static ULONG (WINAPI *pRtlRemoveVectoredExceptionHandler)(PVOID);
+static NTSTATUS (WINAPI *pNtSetLdtEntries)(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
static HANDLE create_target_process(const char *arg)
{
@@ -1278,6 +1279,82 @@ static void test_GetThreadSelectorEntry(void)
@@ -1299,6 +1300,82 @@ static void test_GetThreadSelectorEntry(void)
ok(entry.HighWord.Bits.Granularity == 1, "expected 1, got %u\n", entry.HighWord.Bits.Granularity);
}
@@ -103,15 +103,15 @@ index a9869863b44..2c2a0fda843 100644
#endif /* __i386__ */
static HANDLE finish_event;
@@ -2340,6 +2417,7 @@ static void init_funcs(void)
X(NtQueryInformationThread);
X(RtlGetThreadErrorMode);
@@ -2617,6 +2694,7 @@ static void init_funcs(void)
X(NtSetInformationThread);
X(RtlAddVectoredExceptionHandler);
X(RtlRemoveVectoredExceptionHandler);
+ X(NtSetLdtEntries);
}
#undef X
}
@@ -2396,6 +2474,7 @@ START_TEST(thread)
@@ -2673,6 +2751,7 @@ START_TEST(thread)
test_SetThreadContext();
test_GetThreadSelectorEntry();
test_GetThreadContext();
@@ -120,10 +120,10 @@ index a9869863b44..2c2a0fda843 100644
test_QueueUserWorkItem();
test_RegisterWaitForSingleObject();
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
index 320ffa68407..a52490a096b 100644
index f8d8dd9bf28..194e9c3f3e6 100644
--- a/dlls/ntdll/unix/signal_i386.c
+++ b/dlls/ntdll/unix/signal_i386.c
@@ -480,7 +480,7 @@ NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG
@@ -2207,7 +2207,7 @@ NTSTATUS get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_
if (reply->flags)
info->Entry = ldt_make_entry( (void *)reply->base, reply->limit, reply->flags );
else
@@ -133,5 +133,5 @@ index 320ffa68407..a52490a096b 100644
}
SERVER_END_REQ;
--
2.26.2
2.34.1

View File

@@ -1,107 +1,110 @@
From aea7dcfb0b09794b4925c5e8f0ca2a28b783e8f1 Mon Sep 17 00:00:00 2001
From 8671f494a85acab0f8620bb4462d641f6fd97111 Mon Sep 17 00:00:00 2001
From: Andrew Wesie <awesie@gmail.com>
Date: Mon, 27 Apr 2020 15:32:22 +0300
Subject: [PATCH] kernel32/tests, psapi/tests: Update tests.
---
dlls/kernel32/tests/virtual.c | 19 ++-----------------
dlls/kernel32/tests/virtual.c | 25 +++++--------------------
dlls/psapi/tests/psapi_main.c | 5 +++++
2 files changed, 7 insertions(+), 17 deletions(-)
2 files changed, 10 insertions(+), 20 deletions(-)
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c
index f576d132d8b..70824d771ed 100644
index 365194b9065..6c5d6991737 100644
--- a/dlls/kernel32/tests/virtual.c
+++ b/dlls/kernel32/tests/virtual.c
@@ -3572,9 +3572,7 @@ static void test_CreateFileMapping_protection(void)
@@ -3604,9 +3604,7 @@ static void test_CreateFileMapping_protection(void)
SetLastError(0xdeadbeef);
ret = VirtualQuery(base, &info, sizeof(info));
ok(ret, "VirtualQuery failed %d\n", GetLastError());
ok(ret, "VirtualQuery failed %ld\n", GetLastError());
- /* FIXME: remove the condition below once Wine is fixed */
- todo_wine_if (td[i].prot == PAGE_WRITECOPY || td[i].prot == PAGE_EXECUTE_WRITECOPY)
- ok(info.Protect == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, info.Protect, td[i].prot_after_write);
+ ok(info.Protect == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, info.Protect, td[i].prot_after_write);
- ok(info.Protect == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, info.Protect, td[i].prot_after_write);
+ ok(info.Protect == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, info.Protect, td[i].prot_after_write);
}
}
else
@@ -3588,9 +3586,7 @@ static void test_CreateFileMapping_protection(void)
@@ -3620,9 +3618,7 @@ static void test_CreateFileMapping_protection(void)
SetLastError(0xdeadbeef);
ret = VirtualProtect(base, si.dwPageSize, PAGE_NOACCESS, &old_prot);
ok(ret, "%d: VirtualProtect error %d\n", i, GetLastError());
ok(ret, "%ld: VirtualProtect error %ld\n", i, GetLastError());
- /* FIXME: remove the condition below once Wine is fixed */
- todo_wine_if (td[i].prot == PAGE_WRITECOPY || td[i].prot == PAGE_EXECUTE_WRITECOPY)
- ok(old_prot == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, old_prot, td[i].prot_after_write);
+ ok(old_prot == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, old_prot, td[i].prot_after_write);
- ok(old_prot == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, old_prot, td[i].prot_after_write);
+ ok(old_prot == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, old_prot, td[i].prot_after_write);
UnmapViewOfFile(base);
}
@@ -3943,15 +3939,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
@@ -3975,15 +3971,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
continue;
}
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
ok(ret, "VirtualProtect error %d, map %#x, view %#x, requested prot %#x\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
ok(ret, "VirtualProtect error %ld, map %#lx, view %#lx, requested prot %#lx\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
ok(old_prot == prev_prot, "got %#x, expected %#x\n", old_prot, prev_prot);
ok(old_prot == prev_prot, "got %#lx, expected %#lx\n", old_prot, prev_prot);
prev_prot = actual_prot;
ret = VirtualQuery(base, &info, sizeof(info));
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
- ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
+ ok(ret, "%d: VirtualQuery failed %ld\n", j, GetLastError());
ok(info.Protect == actual_prot,
"VirtualProtect wrong prot, map %#x, view %#x, requested prot %#x got %#x\n",
"VirtualProtect wrong prot, map %#lx, view %#lx, requested prot %#lx got %#lx\n",
page_prot[i], view[j].prot, page_prot[k], info.Protect );
@@ -4006,15 +3999,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
@@ -4038,15 +4031,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
if (!anon_mapping && is_compatible_protection(alloc_prot, PAGE_WRITECOPY))
{
ret = VirtualProtect(base, sec_flags & SEC_IMAGE ? si.dwPageSize : 2*si.dwPageSize, PAGE_WRITECOPY, &old_prot);
- todo_wine_if(readonly && view[j].prot != PAGE_WRITECOPY)
ok(ret, "VirtualProtect error %d, map %#x, view %#x\n", GetLastError(), page_prot[i], view[j].prot);
ok(ret, "VirtualProtect error %ld, map %#lx, view %#lx\n", GetLastError(), page_prot[i], view[j].prot);
if (ret) *(DWORD*)base = 0xdeadbeef;
ret = VirtualQuery(base, &info, sizeof(info));
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
- ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
- todo_wine
ok(info.Protect == PAGE_READWRITE, "VirtualProtect wrong prot, map %#x, view %#x got %#x\n",
+ ok(ret, "%d: VirtualQuery failed %ld\n", j, GetLastError());
ok(info.Protect == PAGE_READWRITE, "VirtualProtect wrong prot, map %#lx, view %#lx got %#lx\n",
page_prot[i], view[j].prot, info.Protect );
- todo_wine_if (!(sec_flags & SEC_IMAGE))
ok(info.RegionSize == si.dwPageSize, "wrong region size %#lx after write, map %#x, view %#x got %#x\n",
ok(info.RegionSize == si.dwPageSize, "wrong region size %#Ix after write, map %#lx, view %#lx got %#lx\n",
info.RegionSize, page_prot[i], view[j].prot, info.Protect );
@@ -4025,7 +4015,6 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
@@ -4057,7 +4047,6 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
{
ret = VirtualQuery((char*)base + si.dwPageSize, &info, sizeof(info));
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
- todo_wine_if(readonly && view[j].prot != PAGE_WRITECOPY)
ok(info.Protect == PAGE_WRITECOPY, "wrong prot, map %#x, view %#x got %#x\n",
ok(info.Protect == PAGE_WRITECOPY, "wrong prot, map %#lx, view %#lx got %#lx\n",
page_prot[i], view[j].prot, info.Protect);
}
@@ -4045,14 +4034,11 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
@@ -4077,14 +4066,11 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
continue;
}
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
ok(ret, "VirtualProtect error %d, map %#x, view %#x, requested prot %#x\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
ok(ret, "VirtualProtect error %ld, map %#lx, view %#lx, requested prot %#lx\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
ok(old_prot == prev_prot, "got %#x, expected %#x\n", old_prot, prev_prot);
ok(old_prot == prev_prot, "got %#lx, expected %#lx\n", old_prot, prev_prot);
ret = VirtualQuery(base, &info, sizeof(info));
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
- ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
- todo_wine_if( map_prot_written( page_prot[k] ) != actual_prot )
+ ok(ret, "%d: VirtualQuery failed %ld\n", j, GetLastError());
ok(info.Protect == map_prot_written( page_prot[k] ),
"VirtualProtect wrong prot, map %#x, view %#x, requested prot %#x got %#x\n",
"VirtualProtect wrong prot, map %#lx, view %#lx, requested prot %#lx got %#lx\n",
page_prot[i], view[j].prot, page_prot[k], info.Protect );
@@ -4093,7 +4079,6 @@ static void test_mappings(void)
@@ -4125,7 +4111,6 @@ static void test_mappings(void)
SetFilePointer(hfile, 0, NULL, FILE_BEGIN);
ok(ReadFile(hfile, &data, sizeof(data), &num_bytes, NULL), "ReadFile failed\n");
ok(num_bytes == sizeof(data), "num_bytes = %d\n", num_bytes);
ok(num_bytes == sizeof(data), "num_bytes = %ld\n", num_bytes);
- todo_wine
ok(!data, "data = %x\n", data);
ok(!data, "data = %lx\n", data);
CloseHandle( hfile );
diff --git a/dlls/psapi/tests/psapi_main.c b/dlls/psapi/tests/psapi_main.c
index c92423ee193..d85099455aa 100644
index 185a4062092..519e39c3df0 100644
--- a/dlls/psapi/tests/psapi_main.c
+++ b/dlls/psapi/tests/psapi_main.c
@@ -830,6 +830,8 @@ static void test_QueryWorkingSetEx(void)
@@ -803,6 +803,8 @@ static void test_QueryWorkingSetEx(void)
DWORD prot;
BOOL ret;
@@ -110,16 +113,16 @@ index c92423ee193..d85099455aa 100644
if (pQueryWorkingSetEx == NULL)
{
win_skip("QueryWorkingSetEx not found, skipping tests\n");
@@ -848,6 +850,9 @@ static void test_QueryWorkingSetEx(void)
@@ -821,6 +823,9 @@ static void test_QueryWorkingSetEx(void)
check_QueryWorkingSetEx(addr, "exe,readonly1", 0, 0, 1, TRUE);
*(volatile char *)addr;
+ check_QueryWorkingSetEx(addr, "exe,readonly2", 1, PAGE_READONLY, 1, FALSE);
+
+ ret = VirtualProtect(addr, 0x1000, PAGE_EXECUTE_READWRITE, &prot);
ok(ret, "VirtualProtect failed with %d\n", GetLastError());
ok(ret, "VirtualProtect failed with %ld\n", GetLastError());
check_QueryWorkingSetEx(addr, "exe,readonly2", 1, PAGE_READONLY, 1, FALSE);
--
2.27.0
2.35.1

View File

@@ -1,4 +1,4 @@
From 31cfae4fcd5b142a4d1b70ad33159c3bddd42181 Mon Sep 17 00:00:00 2001
From 1fbb361023f9474a3522762aae32ad64d056e37e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
Date: Fri, 24 May 2019 15:09:35 +0300
Subject: [PATCH] ntdll/server: Mark drive_c as case-insensitive when created
@@ -9,27 +9,25 @@ Content-Transfer-Encoding: 8bit
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47099
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
---
dlls/ntdll/unix/server.c | 45 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
dlls/ntdll/unix/server.c | 43 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 0952b54f4ef..f998ce35dd0 100644
index ab9d99c4f47..f40897757e3 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -49,6 +49,12 @@
@@ -49,6 +49,10 @@
#ifdef HAVE_SYS_UN_H
#include <sys/un.h>
#endif
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+#ifdef HAVE_LINUX_IOCTL_H
+#include <linux/ioctl.h>
+#endif
#ifdef HAVE_SYS_PRCTL_H
# include <sys/prctl.h>
#endif
@@ -83,6 +89,22 @@
@@ -83,6 +87,22 @@
WINE_DEFAULT_DEBUG_CHANNEL(server);
@@ -52,7 +50,7 @@ index 0952b54f4ef..f998ce35dd0 100644
#ifndef MSG_CMSG_CLOEXEC
#define MSG_CMSG_CLOEXEC 0
#endif
@@ -1140,6 +1162,28 @@ static const char *init_server_dir( dev_t dev, ino_t ino )
@@ -1137,6 +1157,28 @@ static const char *init_server_dir( dev_t dev, ino_t ino )
}
@@ -81,7 +79,7 @@ index 0952b54f4ef..f998ce35dd0 100644
/***********************************************************************
* setup_config_dir
*
@@ -1176,6 +1220,7 @@ static int setup_config_dir(void)
@@ -1173,6 +1215,7 @@ static int setup_config_dir(void)
if (!mkdir( "dosdevices", 0777 ))
{
mkdir( "drive_c", 0777 );
@@ -90,5 +88,5 @@ index 0952b54f4ef..f998ce35dd0 100644
symlink( "/", "dosdevices/z:" );
}
--
2.33.0
2.34.1

Some files were not shown because too many files have changed in this diff Show More