[PATCH 5/8] scrrun: Check that source is directory in MoveFolder.
Robert Wilhelm
wine at gitlab.winehq.org
Wed Jun 29 10:47:06 CDT 2022
From: Robert Wilhelm <robert.wilhelm at gmx.net>
Signed-off-by: Robert Wilhelm <robert.wilhelm at gmx.net>
---
dlls/scrrun/filesystem.c | 2 +-
dlls/scrrun/tests/filesystem.c | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c
index 816d8993530..6ffebc0af12 100644
--- a/dlls/scrrun/filesystem.c
+++ b/dlls/scrrun/filesystem.c
@@ -3774,7 +3774,7 @@ static HRESULT WINAPI filesys_MoveFolder(IFileSystem3 *iface, BSTR source, BSTR
return E_INVALIDARG;
attrs = GetFileAttributesW(source);
- if(attrs == INVALID_FILE_ATTRIBUTES)
+ if((attrs == INVALID_FILE_ATTRIBUTES) || !(attrs & FILE_ATTRIBUTE_DIRECTORY))
return CTL_E_PATHNOTFOUND;
return MoveFileW(source, destination) ? S_OK : create_error(GetLastError());
diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index f2bfe52c2ad..4d144937840 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -2605,6 +2605,7 @@ static void test_MoveFolder(void)
BSTR src, dst, str;
WCHAR buffW1[MAX_PATH],buffW2[MAX_PATH];
HRESULT hr;
+ File *file;
get_temp_path(L"foo", buffW1);
get_temp_path(L"bar", buffW2);
@@ -2642,6 +2643,19 @@ static void test_MoveFolder(void)
ok(hr == CTL_E_PATHNOTFOUND, "Unexpected hr %#lx.\n", hr);
SysFreeString(src);
SysFreeString(dst);
+
+ file = CreateFileW(buffW1, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
+ FILE_ATTRIBUTE_NORMAL, NULL);
+ ok(file != INVALID_HANDLE_VALUE, "CreateFile failed\n");
+ CloseHandle(file);
+
+ src = SysAllocString(buffW1);
+ dst = SysAllocString(buffW2);
+ hr = IFileSystem3_MoveFolder(fs3, src, dst); /* src is regular file */
+ ok(hr == CTL_E_PATHNOTFOUND, "Unexpected hr %#lx.\n", hr);
+ SysFreeString(src);
+ SysFreeString(dst);
+ DeleteFileW(buffW1);
}
static void test_DoOpenPipeStream(void)
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/343
More information about the wine-devel
mailing list