From 10a38ef0567c34a7f56ee88f6f972507f6eecf2c Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 12 Feb 2016 21:06:58 +0900 Subject: [PATCH] server: Require a directory as root to open an object with a name. Signed-off-by: Alexandre Julliard --- server/handle.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server/handle.c b/server/handle.c index 3b0d0335a28..37fba69eac3 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 ))) {