[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