ObInsertObject must always return STATUS_OBJECT_NAME_COLLISION if an object with the same name exist.

svn path=/trunk/; revision=15470
This commit is contained in:
Hartmut Birr 2005-05-22 16:48:30 +00:00
parent 4eba3d8e71
commit 8b6398a0e3

View file

@ -739,6 +739,10 @@ ObReferenceObjectByHandle(HANDLE Handle,
"ObjectType %x, AccessMode %d, Object %x)\n",Handle,DesiredAccess,
ObjectType,AccessMode,Object);
if (Handle == NULL)
{
return STATUS_INVALID_HANDLE;
}
/*
* Handle special handle names
*/
@ -986,13 +990,8 @@ ObInsertObject(IN PVOID Object,
if (FoundHeader && RemainingPath.Buffer == NULL)
{
DPRINT("Object exists\n");
if (FoundHeader->ObjectType != Header->ObjectType
|| !(ObjectCreateInfo->Attributes & OBJ_OPENIF))
{
ObDereferenceObject(FoundObject);
return STATUS_OBJECT_NAME_COLLISION;
}
return STATUS_OBJECT_EXISTS;
ObDereferenceObject(FoundObject);
return STATUS_OBJECT_NAME_COLLISION;
}
}
else