Module: wine Branch: master Commit: bf3c2a06f58a32cd58a019eff95774eea8305ee2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=bf3c2a06f58a32cd58a019eff9...
Author: Bernhard Loos bernhardloos@googlemail.com Date: Tue Jul 19 13:20:39 2011 +0200
server: Check for STATUS_OBJECT_TYPE_MISMATCH before STATUS_ACCESS_DENIED in get_handle_obj.
---
server/handle.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/server/handle.c b/server/handle.c index 9d91f16..c7cd417 100644 --- a/server/handle.c +++ b/server/handle.c @@ -403,14 +403,19 @@ struct object *get_handle_obj( struct process *process, obj_handle_t handle, set_error( STATUS_INVALID_HANDLE ); return NULL; } + obj = entry->ptr; + if (ops && (obj->ops != ops)) + { + set_error( STATUS_OBJECT_TYPE_MISMATCH ); /* not the right type */ + return NULL; + } if ((entry->access & access) != access) { set_error( STATUS_ACCESS_DENIED ); return NULL; } - obj = entry->ptr; } - if (ops && (obj->ops != ops)) + else if (ops && (obj->ops != ops)) { set_error( STATUS_OBJECT_TYPE_MISMATCH ); /* not the right type */ return NULL;