Sebastian Lackner : server: Clear last error when creating object without name.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 2 09:47:14 CST 2015


Module: wine
Branch: master
Commit: 52f9acedd2fb4dab817f2204c74e7f9aa6b26943
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=52f9acedd2fb4dab817f2204c74e7f9aa6b26943

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Mon Nov  2 06:02:16 2015 +0100

server: Clear last error when creating object without name.

Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 server/directory.c  | 6 +++++-
 server/named_pipe.c | 6 +++++-
 server/object.c     | 6 +++++-
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/server/directory.c b/server/directory.c
index 4ebc974..e0cf75e 100644
--- a/server/directory.c
+++ b/server/directory.c
@@ -287,7 +287,11 @@ void *create_named_object_dir( struct directory *root, const struct unicode_str
     struct object *obj, *new_obj = NULL;
     struct unicode_str new_name;
 
-    if (!name || !name->len) return alloc_object( ops );
+    if (!name || !name->len)
+    {
+        if ((new_obj = alloc_object( ops ))) clear_error();
+        return new_obj;
+    }
 
     if (!(obj = find_object_dir( root, name, attributes, &new_name ))) return NULL;
     if (!new_name.len)
diff --git a/server/named_pipe.c b/server/named_pipe.c
index f5e536c..fbabc5a 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -671,7 +671,11 @@ static struct named_pipe *create_named_pipe( struct directory *root, const struc
     struct named_pipe *pipe = NULL;
     struct unicode_str new_name;
 
-    if (!name || !name->len) return alloc_object( &named_pipe_ops );
+    if (!name || !name->len)
+    {
+        if ((pipe = alloc_object( &named_pipe_ops ))) clear_error();
+        return pipe;
+    }
 
     if (!(obj = find_object_dir( root, name, attr, &new_name )))
     {
diff --git a/server/object.c b/server/object.c
index 965c11c..31883bd 100644
--- a/server/object.c
+++ b/server/object.c
@@ -242,7 +242,11 @@ void *create_named_object( struct namespace *namespace, const struct object_ops
 {
     struct object *obj;
 
-    if (!name || !name->len) return alloc_object( ops );
+    if (!name || !name->len)
+    {
+        if ((obj = alloc_object( ops ))) clear_error();
+        return obj;
+    }
 
     if ((obj = find_object( namespace, name, attributes )))
     {




More information about the wine-cvs mailing list