[NTOSKRNL]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 7 Jan 2014 20:50:34 +0000 (20:50 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 7 Jan 2014 20:50:34 +0000 (20:50 +0000)
- Fix return value of ObOpenObjectByName (in success case the return status of ObpLookupObjectName is returned.

svn path=/trunk/; revision=61569

reactos/ntoskrnl/ob/obhandle.c

index 04672de..a2b2f9c 100644 (file)
@@ -2431,7 +2431,7 @@ ObOpenObjectByName(IN POBJECT_ATTRIBUTES ObjectAttributes,
 {
     PVOID Object = NULL;
     UNICODE_STRING ObjectName;
-    NTSTATUS Status;
+    NTSTATUS Status, Status2;
     POBJECT_HEADER ObjectHeader;
     PGENERIC_MAPPING GenericMapping = NULL;
     OB_OPEN_REASON OpenReason;
@@ -2557,17 +2557,21 @@ ObOpenObjectByName(IN POBJECT_ATTRIBUTES ObjectAttributes,
     else
     {
         /* Create the actual handle now */
-        Status = ObpCreateHandle(OpenReason,
-                                 Object,
-                                 ObjectType,
-                                 PassedAccessState,
-                                 0,
-                                 TempBuffer->ObjectCreateInfo.Attributes,
-                                 &TempBuffer->LookupContext,
-                                 AccessMode,
-                                 NULL,
-                                 Handle);
-        if (!NT_SUCCESS(Status)) ObDereferenceObject(Object);
+        Status2 = ObpCreateHandle(OpenReason,
+                                  Object,
+                                  ObjectType,
+                                  PassedAccessState,
+                                  0,
+                                  TempBuffer->ObjectCreateInfo.Attributes,
+                                  &TempBuffer->LookupContext,
+                                  AccessMode,
+                                  NULL,
+                                  Handle);
+        if (!NT_SUCCESS(Status))
+        {
+            ObDereferenceObject(Object);
+            Status = Status2;
+        }
     }
 
 Cleanup: