[PATCH 2/8] scrrun: Check for null arguments in MoveFolder.

Robert Wilhelm wine at gitlab.winehq.org
Wed Jun 29 10:47:03 CDT 2022


From: Robert Wilhelm <robert.wilhelm at gmx.net>

Signed-off-by: Robert Wilhelm <robert.wilhelm at gmx.net>
---
 dlls/scrrun/filesystem.c       | 3 +++
 dlls/scrrun/tests/filesystem.c | 9 ++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c
index dac3b9fdcf7..815ec934ac1 100644
--- a/dlls/scrrun/filesystem.c
+++ b/dlls/scrrun/filesystem.c
@@ -3768,6 +3768,9 @@ static HRESULT WINAPI filesys_MoveFolder(IFileSystem3 *iface, BSTR source, BSTR
 {
     TRACE("%p %s %s\n", iface, debugstr_w(source), debugstr_w(destination));
 
+    if(!source || !destination)
+        return E_INVALIDARG;
+
     return MoveFileW(source, destination) ? S_OK : create_error(GetLastError());
 }
 
diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 4d7692a5d1e..31c0ddd1b95 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -2602,7 +2602,7 @@ static void test_MoveFile(void)
 
 static void test_MoveFolder(void)
 {
-    BSTR src, dst;
+    BSTR src, dst, str;
     WCHAR buffW1[MAX_PATH],buffW2[MAX_PATH];
     HRESULT hr;
 
@@ -2617,6 +2617,13 @@ static void test_MoveFolder(void)
     SysFreeString(src);
     SysFreeString(dst);
     ok(RemoveDirectoryW(buffW2), "can't remove %s directory\n", wine_dbgstr_w(buffW1));
+
+    str = SysAllocString(L"null.txt");
+    hr = IFileSystem3_MoveFolder(fs3, str, NULL);
+    ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+    hr = IFileSystem3_MoveFolder(fs3, NULL, str);
+    ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+    SysFreeString(str);
 }
 
 static void test_DoOpenPipeStream(void)
-- 
GitLab


https://gitlab.winehq.org/wine/wine/-/merge_requests/343



More information about the wine-devel mailing list