[PATCH] kernel32: Check dwFlags parameter in QueryFullProcessImageNameW().

Serge Gautherie winehq-git_serge_180711 at gautherie.fr
Thu Aug 1 05:39:55 CDT 2019


Signed-off-by: Serge Gautherie <winehq-git_serge_180711 at gautherie.fr>
---
 dlls/kernel32/process.c       | 6 ++++++
 dlls/kernel32/tests/process.c | 6 ------
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 23e2316..9f4b313 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -4030,6 +4030,12 @@ BOOL WINAPI QueryFullProcessImageNameW(HANDLE hProcess, DWORD dwFlags, LPWSTR lp
     NTSTATUS status;
     DWORD needed;
 
+    if (dwFlags >= 2)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return FALSE;
+    }
+
     /* FIXME: On Windows, ProcessImageFileName return an NT path. In Wine it
      * is a DOS path and we depend on this. */
     status = NtQueryInformationProcess(hProcess, ProcessImageFileName, buffer,
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index cba0a3f..9fae67f 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -2038,26 +2038,20 @@ static void test_QueryFullProcessImageNameW(void)
         size = ARRAY_SIZE(buf);
         SetLastError(0xdeadbeef);
         *(DWORD*)buf = 0x13579acf;
-        todo_wine
-        {
         expect_eq_d(FALSE, pQueryFullProcessImageNameW(hSelf, flags, buf, &size));
         expect_eq_d(ARRAY_SIZE(buf), size);  /* size not changed */
         expect_eq_d(ERROR_INVALID_PARAMETER, GetLastError());
         expect_eq_d(0x13579acf, *(DWORD*)buf);  /* buffer not changed */
-        }
     }
     for (flags = 16; flags != 0; flags <<= 1)
     {
         size = ARRAY_SIZE(buf);
         SetLastError(0xdeadbeef);
         *(DWORD*)buf = 0x13579acf;
-        todo_wine
-        {
         expect_eq_d(FALSE, pQueryFullProcessImageNameW(hSelf, flags, buf, &size));
         expect_eq_d(ARRAY_SIZE(buf), size);  /* size not changed */
         expect_eq_d(ERROR_INVALID_PARAMETER, GetLastError());
         expect_eq_d(0x13579acf, *(DWORD*)buf);  /* buffer not changed */
-        }
     }
 
     /* native path */
-- 
2.10.0.windows.1




More information about the wine-devel mailing list