[PATCH 4/4] winmm: Copy result buffer from MMIO_Open() to source buffer in mmioOpenW().

Gijs Vermeulen gijsvrm at gmail.com
Mon Jan 18 14:45:34 CST 2021


Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
---
 dlls/winmm/mmio.c       | 7 +++++++
 dlls/winmm/tests/mmio.c | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c
index 7882dc1c2f9..db210a29bec 100644
--- a/dlls/winmm/mmio.c
+++ b/dlls/winmm/mmio.c
@@ -755,6 +755,13 @@ HMMIO WINAPI mmioOpenW(LPWSTR szFileName, MMIOINFO* lpmmioinfo,
 
     ret = MMIO_Open(szFn, lpmmioinfo, dwOpenFlags, TRUE);
 
+    if (szFileName)
+    {
+        INT len = MultiByteToWideChar( CP_ACP, 0, szFn, -1, NULL, 0 );
+        if (len < 128) len = 128;
+        MultiByteToWideChar( CP_ACP, 0, szFn, -1, szFileName, len );
+    }
+
     HeapFree(GetProcessHeap(), 0, szFn);
     return ret;
 }
diff --git a/dlls/winmm/tests/mmio.c b/dlls/winmm/tests/mmio.c
index ae9d4b6aeeb..47788510910 100644
--- a/dlls/winmm/tests/mmio.c
+++ b/dlls/winmm/tests/mmio.c
@@ -559,7 +559,7 @@ static void test_mmioOpen_create(void)
     ok(hmmio == (HMMIO)TRUE, "failed to parse file name, error %#x\n", info.wErrorRet);
     wcscpy(expect, temp_dir);
     wcscat(expect, L"test_mmio_path");
-    todo_wine ok(!wcscmp(buffer, expect), "expected %s, got %s\n", debugstr_w(expect), debugstr_w(buffer));
+    ok(!wcscmp(buffer, expect), "expected %s, got %s\n", debugstr_w(expect), debugstr_w(buffer));
 
     wcscpy(buffer, L"test_mmio_path");
     info.wErrorRet = 0xdead;
-- 
2.30.0




More information about the wine-devel mailing list