mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 16:45:48 +00:00
server: Correct mapping of mutex access rights.
This commit is contained in:
parent
0d36c27e3b
commit
527a985a3d
|
@ -140,7 +140,7 @@ static void test_mutex(void)
|
||||||
hOpened = OpenMutex(GENERIC_EXECUTE, FALSE, "WineTestMutex");
|
hOpened = OpenMutex(GENERIC_EXECUTE, FALSE, "WineTestMutex");
|
||||||
ok(hOpened != NULL, "OpenMutex failed with error %d\n", GetLastError());
|
ok(hOpened != NULL, "OpenMutex failed with error %d\n", GetLastError());
|
||||||
wait_ret = WaitForSingleObject(hOpened, INFINITE);
|
wait_ret = WaitForSingleObject(hOpened, INFINITE);
|
||||||
todo_wine ok(wait_ret == WAIT_OBJECT_0, "WaitForSingleObject failed with error %d\n", GetLastError());
|
ok(wait_ret == WAIT_OBJECT_0, "WaitForSingleObject failed with error %d\n", GetLastError());
|
||||||
CloseHandle(hOpened);
|
CloseHandle(hOpened);
|
||||||
|
|
||||||
for(i=0; i < 31; i++)
|
for(i=0; i < 31; i++)
|
||||||
|
@ -152,7 +152,7 @@ static void test_mutex(void)
|
||||||
hOpened = OpenMutex(GENERIC_READ | GENERIC_WRITE, FALSE, "WineTestMutex");
|
hOpened = OpenMutex(GENERIC_READ | GENERIC_WRITE, FALSE, "WineTestMutex");
|
||||||
ok(hOpened != NULL, "OpenMutex failed with error %d\n", GetLastError());
|
ok(hOpened != NULL, "OpenMutex failed with error %d\n", GetLastError());
|
||||||
wait_ret = WaitForSingleObject(hOpened, INFINITE);
|
wait_ret = WaitForSingleObject(hOpened, INFINITE);
|
||||||
todo_wine ok(wait_ret == WAIT_FAILED, "WaitForSingleObject succeeded\n");
|
ok(wait_ret == WAIT_FAILED, "WaitForSingleObject succeeded\n");
|
||||||
CloseHandle(hOpened);
|
CloseHandle(hOpened);
|
||||||
|
|
||||||
for (i = 0; i < 32; i++)
|
for (i = 0; i < 32; i++)
|
||||||
|
|
|
@ -163,9 +163,9 @@ static int mutex_satisfied( struct object *obj, struct thread *thread )
|
||||||
|
|
||||||
static unsigned int mutex_map_access( struct object *obj, unsigned int access )
|
static unsigned int mutex_map_access( struct object *obj, unsigned int access )
|
||||||
{
|
{
|
||||||
if (access & GENERIC_READ) access |= STANDARD_RIGHTS_READ | SYNCHRONIZE;
|
if (access & GENERIC_READ) access |= STANDARD_RIGHTS_READ;
|
||||||
if (access & GENERIC_WRITE) access |= STANDARD_RIGHTS_WRITE | MUTEX_MODIFY_STATE;
|
if (access & GENERIC_WRITE) access |= STANDARD_RIGHTS_WRITE;
|
||||||
if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE;
|
if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE;
|
||||||
if (access & GENERIC_ALL) access |= STANDARD_RIGHTS_ALL | MUTEX_ALL_ACCESS;
|
if (access & GENERIC_ALL) access |= STANDARD_RIGHTS_ALL | MUTEX_ALL_ACCESS;
|
||||||
return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
|
return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue