Module: wine Branch: master Commit: 10a38ef0567c34a7f56ee88f6f972507f6eecf2c URL: http://source.winehq.org/git/wine.git/?a=commit;h=10a38ef0567c34a7f56ee88f6f...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Feb 12 21:06:58 2016 +0900
server: Require a directory as root to open an object with a name.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
server/handle.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/server/handle.c b/server/handle.c index 3b0d033..37fba69 100644 --- a/server/handle.c +++ b/server/handle.c @@ -592,7 +592,14 @@ obj_handle_t open_object( struct process *process, obj_handle_t parent, unsigned return 0; }
- if (parent && !(root = get_handle_obj( process, parent, 0, NULL ))) return 0; + if (parent) + { + if (name->len) + root = get_directory_obj( process, parent ); + else /* opening the object itself can work for non-directories too */ + root = get_handle_obj( process, parent, 0, NULL ); + if (!root) return 0; + }
if ((obj = open_named_object( root, ops, name, attributes ))) {