server: Make alloc_handle use attributes instead of inherit flag.
diff --git a/server/atom.c b/server/atom.c
index a8d26af..e42a503 100644
--- a/server/atom.c
+++ b/server/atom.c
@@ -445,7 +445,7 @@
if (table)
{
- reply->table = alloc_handle( current->process, table, 0, FALSE);
+ reply->table = alloc_handle( current->process, table, 0, 0 );
release_object( table );
}
}
diff --git a/server/console.c b/server/console.c
index e096079..56d359c 100644
--- a/server/console.c
+++ b/server/console.c
@@ -1240,10 +1240,9 @@
}
if ((console = (struct console_input*)create_console_input( current )))
{
- if ((in = alloc_handle( renderer, console, req->access, req->attributes & OBJ_INHERIT )))
+ if ((in = alloc_handle( renderer, console, req->access, req->attributes )))
{
- if ((evt = alloc_handle( renderer, console->evt,
- SYNCHRONIZE|GENERIC_READ|GENERIC_WRITE, FALSE )))
+ if ((evt = alloc_handle( renderer, console->evt, SYNCHRONIZE|GENERIC_READ|GENERIC_WRITE, 0 )))
{
if (process != renderer)
{
@@ -1312,7 +1311,7 @@
/* FIXME: req->share is not used (as in screen buffer creation) */
if (obj)
{
- reply->handle = alloc_handle( current->process, obj, req->access, req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, obj, req->access, req->attributes );
release_object( obj );
}
else if (!get_error()) set_error( STATUS_ACCESS_DENIED );
@@ -1410,8 +1409,7 @@
{
/* FIXME: should store sharing and test it when opening the CONOUT$ device
* see file.c on how this could be done */
- reply->handle_out = alloc_handle( current->process, screen_buffer,
- req->access, req->attributes & OBJ_INHERIT );
+ reply->handle_out = alloc_handle( current->process, screen_buffer, req->access, req->attributes );
release_object( screen_buffer );
}
release_object( console );
@@ -1541,8 +1539,7 @@
if (console)
{
- reply->handle = alloc_handle( current->process, console->event,
- EVENT_ALL_ACCESS, FALSE);
+ reply->handle = alloc_handle( current->process, console->event, EVENT_ALL_ACCESS, 0 );
release_object( console );
}
else set_error( STATUS_INVALID_PARAMETER );
diff --git a/server/debugger.c b/server/debugger.c
index a7f8830..f40f494 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -116,7 +116,7 @@
obj_handle_t handle;
/* documented: THREAD_GET_CONTEXT | THREAD_SET_CONTEXT | THREAD_SUSPEND_RESUME */
- if (!(handle = alloc_handle( debugger, thread, THREAD_ALL_ACCESS, FALSE ))) return 0;
+ if (!(handle = alloc_handle( debugger, thread, THREAD_ALL_ACCESS, 0 ))) return 0;
event->data.info.create_thread.handle = handle;
event->data.info.create_thread.teb = thread->teb;
event->data.info.create_thread.start = arg;
@@ -131,11 +131,11 @@
obj_handle_t handle;
/* documented: PROCESS_VM_READ | PROCESS_VM_WRITE */
- if (!(handle = alloc_handle( debugger, process, PROCESS_ALL_ACCESS, FALSE ))) return 0;
+ if (!(handle = alloc_handle( debugger, process, PROCESS_ALL_ACCESS, 0 ))) return 0;
event->data.info.create_process.process = handle;
/* documented: THREAD_GET_CONTEXT | THREAD_SET_CONTEXT | THREAD_SUSPEND_RESUME */
- if (!(handle = alloc_handle( debugger, thread, THREAD_ALL_ACCESS, FALSE )))
+ if (!(handle = alloc_handle( debugger, thread, THREAD_ALL_ACCESS, 0 )))
{
close_handle( debugger, event->data.info.create_process.process, NULL );
return 0;
@@ -145,7 +145,7 @@
handle = 0;
if (process->exe.file &&
/* the doc says write access too, but this doesn't seem a good idea */
- !(handle = alloc_handle( debugger, process->exe.file, GENERIC_READ, FALSE )))
+ !(handle = alloc_handle( debugger, process->exe.file, GENERIC_READ, 0 )))
{
close_handle( debugger, event->data.info.create_process.process, NULL );
close_handle( debugger, event->data.info.create_process.thread, NULL );
@@ -182,7 +182,7 @@
struct process_dll *dll = arg;
obj_handle_t handle = 0;
- if (dll->file && !(handle = alloc_handle( debugger, dll->file, GENERIC_READ, FALSE )))
+ if (dll->file && !(handle = alloc_handle( debugger, dll->file, GENERIC_READ, 0 )))
return 0;
event->data.info.load_dll.handle = handle;
event->data.info.load_dll.base = dll->base;
@@ -582,7 +582,7 @@
reply->pid = 0;
reply->tid = 0;
if (req->get_handle)
- reply->wait = alloc_handle( current->process, debug_ctx, SYNCHRONIZE, FALSE );
+ reply->wait = alloc_handle( current->process, debug_ctx, SYNCHRONIZE, 0 );
}
}
@@ -651,7 +651,7 @@
data.first = req->first;
if ((event = alloc_debug_event( current, EXCEPTION_DEBUG_EVENT, &data, context )))
{
- if ((reply->handle = alloc_handle( current->process, event, SYNCHRONIZE, FALSE )))
+ if ((reply->handle = alloc_handle( current->process, event, SYNCHRONIZE, 0 )))
{
link_event( event );
suspend_process( current->process );
diff --git a/server/directory.c b/server/directory.c
index 21dec3a..6f14833 100644
--- a/server/directory.c
+++ b/server/directory.c
@@ -368,8 +368,7 @@
if ((dir = create_directory( root, &name, req->attributes, HASH_SIZE )))
{
- reply->handle = alloc_handle( current->process, dir, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, dir, req->access, req->attributes );
release_object( dir );
}
@@ -388,8 +387,7 @@
if ((dir = open_object_dir( root, &name, req->attributes, &directory_ops )))
{
- reply->handle = alloc_handle( current->process, &dir->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &dir->obj, req->access, req->attributes );
release_object( dir );
}
diff --git a/server/event.c b/server/event.c
index 7464e18..adbbb11 100644
--- a/server/event.c
+++ b/server/event.c
@@ -159,8 +159,7 @@
if ((event = create_event( root, &name, req->attributes, req->manual_reset, req->initial_state )))
{
- reply->handle = alloc_handle( current->process, event, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, event, req->access, req->attributes );
release_object( event );
}
@@ -180,8 +179,7 @@
if ((event = open_object_dir( root, &name, req->attributes, &event_ops )))
{
- reply->handle = alloc_handle( current->process, &event->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &event->obj, req->access, req->attributes );
release_object( event );
}
diff --git a/server/file.c b/server/file.c
index 1b34c7a..b24751a 100644
--- a/server/file.c
+++ b/server/file.c
@@ -356,8 +356,7 @@
if ((file = create_file( get_req_data(), get_req_data_size(), req->access,
req->sharing, req->create, req->options, req->attrs )))
{
- reply->handle = alloc_handle( current->process, file, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, file, req->access, req->attributes );
release_object( file );
}
}
@@ -376,8 +375,7 @@
}
if ((file = create_file_for_fd( fd, req->access, FILE_SHARE_READ | FILE_SHARE_WRITE )))
{
- reply->handle = alloc_handle( current->process, file, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, file, req->access, req->attributes );
release_object( file );
}
}
diff --git a/server/handle.c b/server/handle.c
index 9ba56b6..9305191 100644
--- a/server/handle.c
+++ b/server/handle.c
@@ -223,10 +223,10 @@
/* allocate a handle for an object, incrementing its refcount */
/* return the handle, or 0 on error */
-obj_handle_t alloc_handle( struct process *process, void *obj, unsigned int access, int inherit )
+obj_handle_t alloc_handle( struct process *process, void *obj, unsigned int access, unsigned int attr )
{
access &= ~RESERVED_ALL;
- if (inherit) access |= RESERVED_INHERIT;
+ if (attr & OBJ_INHERIT) access |= RESERVED_INHERIT;
if (!process->handles)
{
set_error( STATUS_NO_MEMORY );
@@ -497,7 +497,7 @@
/* duplicate a handle */
obj_handle_t duplicate_handle( struct process *src, obj_handle_t src_handle, struct process *dst,
- unsigned int access, int inherit, int options )
+ unsigned int access, unsigned int attr, unsigned int options )
{
obj_handle_t res;
struct object *obj = get_handle_obj( src, src_handle, 0, NULL );
@@ -518,7 +518,7 @@
if (options & DUP_HANDLE_MAKE_GLOBAL)
res = alloc_global_handle( obj, access );
else
- res = alloc_handle( dst, obj, access, inherit );
+ res = alloc_handle( dst, obj, access, attr );
release_object( obj );
return res;
}
@@ -534,7 +534,7 @@
if (ops && obj->ops != ops)
set_error( STATUS_OBJECT_TYPE_MISMATCH );
else
- handle = alloc_handle( current->process, obj, access, attr & OBJ_INHERIT );
+ handle = alloc_handle( current->process, obj, access, attr );
release_object( obj );
}
else
@@ -573,12 +573,12 @@
if (req->options & DUP_HANDLE_MAKE_GLOBAL)
{
reply->handle = duplicate_handle( src, req->src_handle, NULL,
- req->access, req->attributes & OBJ_INHERIT, req->options );
+ req->access, req->attributes, req->options );
}
else if ((dst = get_process_from_handle( req->dst_process, PROCESS_DUP_HANDLE )))
{
reply->handle = duplicate_handle( src, req->src_handle, dst,
- req->access, req->attributes & OBJ_INHERIT, req->options );
+ req->access, req->attributes, req->options );
release_object( dst );
}
/* close the handle no matter what happened */
diff --git a/server/handle.h b/server/handle.h
index 74dd7dd..ad71252 100644
--- a/server/handle.h
+++ b/server/handle.h
@@ -35,7 +35,7 @@
/* alloc_handle takes a void *obj for convenience, but you better make sure */
/* that the thing pointed to starts with a struct object... */
extern obj_handle_t alloc_handle( struct process *process, void *obj,
- unsigned int access, int inherit );
+ unsigned int access, unsigned int attr );
extern int close_handle( struct process *process, obj_handle_t handle, int *fd );
extern struct object *get_handle_obj( struct process *process, obj_handle_t handle,
unsigned int access, const struct object_ops *ops );
@@ -43,7 +43,7 @@
extern int get_handle_unix_fd( struct process *process, obj_handle_t handle, unsigned int access );
extern int set_handle_unix_fd( struct process *process, obj_handle_t handle, int fd );
extern obj_handle_t duplicate_handle( struct process *src, obj_handle_t src_handle, struct process *dst,
- unsigned int access, int inherit, int options );
+ unsigned int access, unsigned int attr, unsigned int options );
extern obj_handle_t open_object( const struct namespace *namespace, const struct unicode_str *name,
const struct object_ops *ops, unsigned int access, unsigned int attr );
extern obj_handle_t find_inherited_handle( struct process *process, const struct object_ops *ops );
diff --git a/server/mailslot.c b/server/mailslot.c
index c882896..f4accf2 100644
--- a/server/mailslot.c
+++ b/server/mailslot.c
@@ -429,8 +429,7 @@
if ((mailslot = create_mailslot( root, &name, req->attributes, req->max_msgsize,
req->read_timeout )))
{
- reply->handle = alloc_handle( current->process, mailslot,
- req->access, req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, mailslot, req->access, req->attributes );
release_object( mailslot );
}
@@ -466,8 +465,7 @@
writer = create_mail_writer( mailslot, req->access, req->sharing );
if (writer)
{
- reply->handle = alloc_handle( current->process, writer,
- req->access, req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, writer, req->access, req->attributes );
release_object( writer );
}
release_object( mailslot );
diff --git a/server/mapping.c b/server/mapping.c
index cc81e37..c9813f2 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -389,8 +389,7 @@
if ((obj = create_mapping( root, &name, req->attributes, size, req->protect, req->file_handle )))
{
- reply->handle = alloc_handle( current->process, obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, obj, req->access, req->attributes );
release_object( obj );
}
@@ -410,8 +409,7 @@
if ((mapping = open_object_dir( root, &name, req->attributes, &mapping_ops )))
{
- reply->handle = alloc_handle( current->process, &mapping->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &mapping->obj, req->access, req->attributes );
release_object( mapping );
}
diff --git a/server/mutex.c b/server/mutex.c
index 18c194e..f602200 100644
--- a/server/mutex.c
+++ b/server/mutex.c
@@ -185,8 +185,7 @@
if ((mutex = create_mutex( root, &name, req->attributes, req->owned )))
{
- reply->handle = alloc_handle( current->process, mutex, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, mutex, req->access, req->attributes );
release_object( mutex );
}
@@ -206,8 +205,7 @@
if ((mutex = open_object_dir( root, &name, req->attributes, &mutex_ops )))
{
- reply->handle = alloc_handle( current->process, &mutex->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &mutex->obj, req->access, req->attributes );
release_object( mutex );
}
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 2917d7b..bda6bd9 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -679,8 +679,7 @@
server = create_pipe_server( pipe, req->options );
if (server)
{
- reply->handle = alloc_handle( current->process, server,
- req->access, req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, server, req->access, req->attributes );
server->pipe->instances++;
release_object( server );
}
@@ -745,8 +744,7 @@
server->state = ps_connected_server;
server->client = client;
client->server = server;
- reply->handle = alloc_handle( current->process, client,
- req->access, req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, client, req->access, req->attributes );
}
}
else
diff --git a/server/process.c b/server/process.c
index 401c1ec..3f7daf3 100644
--- a/server/process.c
+++ b/server/process.c
@@ -892,7 +892,7 @@
goto done;
if (!(info->data = memdup( get_req_data(), info->data_size ))) goto done;
- reply->info = alloc_handle( current->process, info, SYNCHRONIZE, FALSE );
+ reply->info = alloc_handle( current->process, info, SYNCHRONIZE, 0 );
done:
release_object( info );
@@ -909,9 +909,9 @@
reply->pid = get_process_id( info->process );
reply->tid = get_thread_id( info->thread );
reply->phandle = alloc_handle( current->process, info->process,
- req->process_access, req->process_attr & OBJ_INHERIT );
+ req->process_access, req->process_attr );
reply->thandle = alloc_handle( current->process, info->thread,
- req->thread_access, req->thread_attr & OBJ_INHERIT );
+ req->thread_access, req->thread_attr );
reply->success = is_process_init_done( info->process );
release_object( info );
}
@@ -943,11 +943,11 @@
{
struct process *parent_process = info->owner->process;
reply->hstdin = duplicate_handle( parent_process, info->hstdin, process,
- 0, TRUE, DUPLICATE_SAME_ACCESS );
+ 0, OBJ_INHERIT, DUPLICATE_SAME_ACCESS );
reply->hstdout = duplicate_handle( parent_process, info->hstdout, process,
- 0, TRUE, DUPLICATE_SAME_ACCESS );
+ 0, OBJ_INHERIT, DUPLICATE_SAME_ACCESS );
reply->hstderr = duplicate_handle( parent_process, info->hstderr, process,
- 0, TRUE, DUPLICATE_SAME_ACCESS );
+ 0, OBJ_INHERIT, DUPLICATE_SAME_ACCESS );
/* some handles above may have been invalid; this is not an error */
if (get_error() == STATUS_INVALID_HANDLE ||
get_error() == STATUS_OBJECT_TYPE_MISMATCH) clear_error();
@@ -1009,8 +1009,7 @@
reply->handle = 0;
if (process)
{
- reply->handle = alloc_handle( current->process, process, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, process, req->access, req->attributes );
release_object( process );
}
}
diff --git a/server/semaphore.c b/server/semaphore.c
index 2dd6beb..d64bfbe 100644
--- a/server/semaphore.c
+++ b/server/semaphore.c
@@ -159,8 +159,7 @@
if ((sem = create_semaphore( root, &name, req->attributes, req->initial, req->max )))
{
- reply->handle = alloc_handle( current->process, sem, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, sem, req->access, req->attributes );
release_object( sem );
}
@@ -180,8 +179,7 @@
if ((sem = open_object_dir( root, &name, req->attributes, &semaphore_ops )))
{
- reply->handle = alloc_handle( current->process, &sem->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &sem->obj, req->access, req->attributes );
release_object( sem );
}
diff --git a/server/snapshot.c b/server/snapshot.c
index 4159962..1d2ec97 100644
--- a/server/snapshot.c
+++ b/server/snapshot.c
@@ -236,7 +236,7 @@
reply->handle = 0;
if ((snapshot = create_snapshot( req->pid, req->flags )))
{
- reply->handle = alloc_handle( current->process, snapshot, 0, req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, snapshot, 0, req->attributes );
release_object( snapshot );
}
}
diff --git a/server/sock.c b/server/sock.c
index 6e2acbb..2cbd100 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -773,8 +773,7 @@
reply->handle = 0;
if ((obj = create_socket( req->family, req->type, req->protocol, req->flags )) != NULL)
{
- reply->handle = alloc_handle( current->process, obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, obj, req->access, req->attributes );
release_object( obj );
}
}
@@ -787,8 +786,7 @@
reply->handle = 0;
if ((sock = accept_socket( req->lhandle )) != NULL)
{
- reply->handle = alloc_handle( current->process, &sock->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &sock->obj, req->access, req->attributes );
sock->wparam = reply->handle; /* wparam for message is the socket handle */
sock_reselect( sock );
release_object( &sock->obj );
diff --git a/server/symlink.c b/server/symlink.c
index cf805a7..083da71 100644
--- a/server/symlink.c
+++ b/server/symlink.c
@@ -155,8 +155,7 @@
if ((symlink = create_symlink( root, &name, req->attributes, &target )))
{
- reply->handle = alloc_handle( current->process, symlink, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, symlink, req->access, req->attributes );
release_object( symlink );
}
@@ -176,8 +175,7 @@
if ((symlink = open_object_dir( root, &name, req->attributes | OBJ_OPENLINK, &symlink_ops )))
{
- reply->handle = alloc_handle( current->process, &symlink->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &symlink->obj, req->access, req->attributes );
release_object( symlink );
}
diff --git a/server/thread.c b/server/thread.c
index 51ef5ec..705dc7b 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -828,8 +828,7 @@
{
if (req->suspend) thread->suspend++;
reply->tid = get_thread_id( thread );
- if ((reply->handle = alloc_handle( current->process, thread,
- req->access, req->attributes & OBJ_INHERIT )))
+ if ((reply->handle = alloc_handle( current->process, thread, req->access, req->attributes )))
{
/* thread object will be released when the thread gets killed */
return;
@@ -931,8 +930,7 @@
reply->handle = 0;
if (thread)
{
- reply->handle = alloc_handle( current->process, thread, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, thread, req->access, req->attributes );
release_object( thread );
}
}
diff --git a/server/timer.c b/server/timer.c
index 436ed7c..395bbda 100644
--- a/server/timer.c
+++ b/server/timer.c
@@ -218,8 +218,7 @@
if ((timer = create_timer( root, &name, req->attributes, req->manual )))
{
- reply->handle = alloc_handle( current->process, timer, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, timer, req->access, req->attributes );
release_object( timer );
}
@@ -239,8 +238,7 @@
if ((timer = open_object_dir( root, &name, req->attributes, &timer_ops )))
{
- reply->handle = alloc_handle( current->process, &timer->obj, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, &timer->obj, req->access, req->attributes );
release_object( timer );
}
diff --git a/server/token.c b/server/token.c
index d10b9a1..3af7236 100644
--- a/server/token.c
+++ b/server/token.c
@@ -884,7 +884,7 @@
{
if (thread->token)
reply->token = alloc_handle( current->process, thread->token, req->access,
- req->attributes & OBJ_INHERIT );
+ req->attributes );
else
set_error(STATUS_NO_TOKEN);
release_object( thread );
@@ -897,7 +897,7 @@
{
if (process->token)
reply->token = alloc_handle( current->process, process->token, req->access,
- req->attributes & OBJ_INHERIT );
+ req->attributes );
else
set_error(STATUS_NO_TOKEN);
release_object( process );
@@ -1017,8 +1017,7 @@
access = req->access;
if (access & MAXIMUM_ALLOWED) access = TOKEN_ALL_ACCESS; /* FIXME: needs general solution */
- reply->new_handle = alloc_handle( current->process, token, access,
- req->attributes & OBJ_INHERIT);
+ reply->new_handle = alloc_handle( current->process, token, access, req->attributes);
release_object( token );
}
release_object( src_token );
diff --git a/server/winstation.c b/server/winstation.c
index 0f7b85d..efacdf3 100644
--- a/server/winstation.c
+++ b/server/winstation.c
@@ -268,7 +268,7 @@
}
if (winstation)
{
- process->winstation = alloc_handle( process, winstation, WINSTA_ALL_ACCESS, FALSE );
+ process->winstation = alloc_handle( process, winstation, WINSTA_ALL_ACCESS, 0 );
release_object( winstation );
}
clear_error(); /* ignore errors */
@@ -290,7 +290,7 @@
if (!name) name = &default_str;
if ((desktop = create_desktop( name, OBJ_CASE_INSENSITIVE | OBJ_OPENIF, 0, winstation )))
{
- process->desktop = alloc_handle( process, desktop, DESKTOP_ALL_ACCESS, FALSE );
+ process->desktop = alloc_handle( process, desktop, DESKTOP_ALL_ACCESS, 0 );
release_object( desktop );
}
release_object( winstation );
@@ -319,8 +319,7 @@
get_req_unicode_str( &name );
if ((winstation = create_winstation( &name, req->attributes, req->flags )))
{
- reply->handle = alloc_handle( current->process, winstation, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, winstation, req->access, req->attributes );
release_object( winstation );
}
}
@@ -387,8 +386,7 @@
{
if ((desktop = create_desktop( &name, req->attributes, req->flags, winstation )))
{
- reply->handle = alloc_handle( current->process, desktop, req->access,
- req->attributes & OBJ_INHERIT );
+ reply->handle = alloc_handle( current->process, desktop, req->access, req->attributes );
release_object( desktop );
}
release_object( winstation );