Commit 42211649 authored by Dmitry Timoshkov's avatar Dmitry Timoshkov Committed by Alexandre Julliard

server: Fix generic access mapping for a mutex.

parent 23adc9aa
......@@ -4539,14 +4539,14 @@ static void test_mutex_security(HANDLE token)
STANDARD_RIGHTS_ALL | MUTEX_ALL_ACCESS };
static const struct
{
int todo, generic, mapped;
int generic, mapped;
} map[] =
{
{ 0, 0, 0 },
{ 1, GENERIC_READ, STANDARD_RIGHTS_READ | MUTANT_QUERY_STATE },
{ 0, GENERIC_WRITE, STANDARD_RIGHTS_WRITE },
{ 0, GENERIC_EXECUTE, STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE },
{ 0, GENERIC_ALL, STANDARD_RIGHTS_ALL | MUTANT_QUERY_STATE }
{ 0, 0 },
{ GENERIC_READ, STANDARD_RIGHTS_READ | MUTANT_QUERY_STATE },
{ GENERIC_WRITE, STANDARD_RIGHTS_WRITE },
{ GENERIC_EXECUTE, STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE },
{ GENERIC_ALL, STANDARD_RIGHTS_ALL | MUTANT_QUERY_STATE }
};
SetLastError(0xdeadbeef);
......@@ -4569,10 +4569,6 @@ static void test_mutex_security(HANDLE token)
ok(ret, "DuplicateHandle error %d\n", GetLastError());
access = get_obj_access(dup);
if (map[i].todo)
todo_wine
ok(access == map[i].mapped, "%d: expected %#x, got %#x\n", i, map[i].mapped, access);
else
ok(access == map[i].mapped, "%d: expected %#x, got %#x\n", i, map[i].mapped, access);
CloseHandle(dup);
......
......@@ -169,7 +169,7 @@ static void mutex_satisfied( struct object *obj, struct wait_queue_entry *entry
static unsigned int mutex_map_access( struct object *obj, unsigned int access )
{
if (access & GENERIC_READ) access |= STANDARD_RIGHTS_READ;
if (access & GENERIC_READ) access |= STANDARD_RIGHTS_READ | MUTANT_QUERY_STATE;
if (access & GENERIC_WRITE) access |= STANDARD_RIGHTS_WRITE;
if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE;
if (access & GENERIC_ALL) access |= STANDARD_RIGHTS_ALL | MUTEX_ALL_ACCESS;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment