Respect OBJ_OPENIF flag in ObCreateObject
authorHervé Poussineau <hpoussin@reactos.org>
Mon, 11 Apr 2005 22:38:05 +0000 (22:38 +0000)
committerHervé Poussineau <hpoussin@reactos.org>
Mon, 11 Apr 2005 22:38:05 +0000 (22:38 +0000)
svn path=/trunk/; revision=14596

reactos/ntoskrnl/ob/namespc.c
reactos/ntoskrnl/ob/object.c

index f67794a..99a635c 100644 (file)
@@ -60,7 +60,7 @@ ObReferenceObjectByName(PUNICODE_STRING ObjectPath,
 
    InitializeObjectAttributes(&ObjectAttributes,
                              ObjectPath,
 
    InitializeObjectAttributes(&ObjectAttributes,
                              ObjectPath,
-                             Attributes,
+                             Attributes | OBJ_OPENIF,
                              NULL,
                              NULL);
    Status = ObFindObject(&ObjectAttributes,
                              NULL,
                              NULL);
    Status = ObFindObject(&ObjectAttributes,
index 08c36ed..b128e9e 100644 (file)
@@ -712,7 +712,8 @@ ObCreateObject (IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL,
       if (ParentHeader &&
          RemainingPath.Buffer == NULL)
         {
       if (ParentHeader &&
          RemainingPath.Buffer == NULL)
         {
-         if (ParentHeader->ObjectType != Type)
+         if (ParentHeader->ObjectType != Type
+               || !(ObjectAttributes->Attributes & OBJ_OPENIF))
            {
               ObDereferenceObject(Parent);
              return STATUS_OBJECT_NAME_COLLISION;
            {
               ObDereferenceObject(Parent);
              return STATUS_OBJECT_NAME_COLLISION;