Commit 81069001 authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Alexandre Julliard

server: Make enum_winstations enumerate all the window stations with WINSTA_ENUMERATE right.

parent fa7f1656
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "process.h" #include "process.h"
#include "user.h" #include "user.h"
#include "file.h" #include "file.h"
#include "security.h"
#include "wine/unicode.h" #include "wine/unicode.h"
...@@ -636,16 +637,15 @@ DECL_HANDLER(set_user_object_info) ...@@ -636,16 +637,15 @@ DECL_HANDLER(set_user_object_info)
/* enumerate window stations */ /* enumerate window stations */
DECL_HANDLER(enum_winstation) DECL_HANDLER(enum_winstation)
{ {
unsigned int index = req->index; unsigned int index = 0;
obj_handle_t handle; struct winstation *winsta;
struct object *obj;
while ((handle = enumerate_handles( current->process, &winstation_ops, &index ))) LIST_FOR_EACH_ENTRY( winsta, &winstation_list, struct winstation, entry )
{ {
if (!(obj = get_handle_obj( current->process, handle, WINSTA_ENUMERATE, &winstation_ops ))) unsigned int access = WINSTA_ENUMERATE;
continue; if (req->index > index++) continue;
set_reply_data_obj_name( obj ); if (!check_object_access( &winsta->obj, &access )) continue;
release_object( obj ); set_reply_data_obj_name( &winsta->obj );
clear_error(); clear_error();
reply->next = index; reply->next = index;
return; return;
......
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