From: Thomas Faber Date: Thu, 7 Aug 2014 13:02:59 +0000 (+0000) Subject: [NTOS:OB] X-Git-Tag: backups/0.3.17@66124~825 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=9665943699c490129a201618b1e222288cd30039 [NTOS:OB] - Mark object types as not having ObjectCreateInfo on creation. Otherwise ObpObjectType's TypeList gets corrupted when a handle to an object type is created (as kmtest:ObTypes does) and ObpIncrementHandleCount tries to insert the list entry a second time. CORE-8423 #resolve svn path=/trunk/; revision=63833 --- diff --git a/reactos/ntoskrnl/ob/oblife.c b/reactos/ntoskrnl/ob/oblife.c index 15e790d3a9b..1edc2ff0908 100644 --- a/reactos/ntoskrnl/ob/oblife.c +++ b/reactos/ntoskrnl/ob/oblife.c @@ -1231,8 +1231,15 @@ ObCreateObjectType(IN PUNICODE_STRING TypeName, /* Get creator info and insert it into the type list */ CreatorInfo = OBJECT_HEADER_TO_CREATOR_INFO(Header); - if (CreatorInfo) InsertTailList(&ObpTypeObjectType->TypeList, - &CreatorInfo->TypeList); + if (CreatorInfo) + { + InsertTailList(&ObpTypeObjectType->TypeList, + &CreatorInfo->TypeList); + + /* CORE-8423: Avoid inserting this a second time if someone creates a + * handle to the object type (bug in Windows 2003) */ + Header->Flags &= ~OB_FLAG_CREATE_INFO; + } /* Set the index and the entry into the object type array */ LocalObjectType->Index = ObpTypeObjectType->TotalNumberOfObjects;