From: Yuxuan Shui yshui@codeweavers.com
Previously we only reject flags that doesn't contain any of the supported bits, but we should also reject flags that contain bits we don't support. --- dlls/kernel32/toolhelp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/toolhelp.c b/dlls/kernel32/toolhelp.c index 5e1ec84d100..5d27302f6f2 100644 --- a/dlls/kernel32/toolhelp.c +++ b/dlls/kernel32/toolhelp.c @@ -289,11 +289,12 @@ HANDLE WINAPI CreateToolhelp32Snapshot( DWORD flags, DWORD process ) LDR_DATA_TABLE_ENTRY *mod = NULL; ULONG num_pcs, num_thd, num_mod; HANDLE hSnapShot = 0; + DWORD supported_flags = TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE;
TRACE("%lx,%lx\n", flags, process ); - if (!(flags & (TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE))) + if (!flags || (flags & supported_flags) != flags) { - FIXME("flags %lx not implemented\n", flags ); + FIXME("flags %lx contain unimplemented flags\n", flags); SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); return INVALID_HANDLE_VALUE; }