mirror of
https://github.com/wine-mirror/wine
synced 2024-07-01 07:14:31 +00:00
server: Check for DELETE access in NtMakeTemporaryObject().
This commit is contained in:
parent
0b472874af
commit
a4ef56e1d9
|
@ -3321,7 +3321,6 @@ static void test_object_permanence(void)
|
||||||
ok( !!(obi.GrantedAccess & DELETE), "expected DELETE access in %08lx\n", obi.GrantedAccess );
|
ok( !!(obi.GrantedAccess & DELETE), "expected DELETE access in %08lx\n", obi.GrantedAccess );
|
||||||
|
|
||||||
status = NtMakeTemporaryObject( handle );
|
status = NtMakeTemporaryObject( handle );
|
||||||
todo_wine_if(test->make_temp_status == STATUS_ACCESS_DENIED)
|
|
||||||
ok( status == test->make_temp_status, "NtMakeTemporaryObject returned %08lx\n", status );
|
ok( status == test->make_temp_status, "NtMakeTemporaryObject returned %08lx\n", status );
|
||||||
if (!NT_ERROR(status)) is_permanent = FALSE;
|
if (!NT_ERROR(status)) is_permanent = FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -887,9 +887,10 @@ DECL_HANDLER(get_system_handles)
|
||||||
|
|
||||||
DECL_HANDLER(set_object_permanence)
|
DECL_HANDLER(set_object_permanence)
|
||||||
{
|
{
|
||||||
|
const unsigned int access = req->permanent ? 0 : DELETE;
|
||||||
struct object *obj;
|
struct object *obj;
|
||||||
|
|
||||||
if (!(obj = get_handle_obj( current->process, req->handle, 0, NULL ))) return;
|
if (!(obj = get_handle_obj( current->process, req->handle, access, NULL ))) return;
|
||||||
|
|
||||||
if (req->permanent && !obj->is_permanent)
|
if (req->permanent && !obj->is_permanent)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user