From: short <> Date: Wed, 13 Aug 2003 08:51:37 +0000 (+0000) Subject: ObInitializeObject(): Pre-clear object HEADER to prevent undeterministic bugs. X-Git-Tag: captive-0_9~6 X-Git-Url: http://git.jankratochvil.net/?a=commitdiff_plain;h=de0e1deefe36a076b147b3cc2ce4b2459e13850f;p=reactos.git ObInitializeObject(): Pre-clear object HEADER to prevent undeterministic bugs. ObpPerformRetentionChecks(): Do not ExFreePool() FILE_OBJECT to aid debugging. --- diff --git a/ntoskrnl/ob/object.c b/ntoskrnl/ob/object.c index c040e5b..579beae 100644 --- a/ntoskrnl/ob/object.c +++ b/ntoskrnl/ob/object.c @@ -74,6 +74,8 @@ VOID ObInitializeObject(POBJECT_HEADER ObjectHeader, ObjectAttributes && (ObjectAttributes->Attributes & OBJ_INHERIT) ? TRUE : FALSE, Handle); } + /* LIBCAPTIVE: */ + memset(HEADER_TO_BODY(ObjectHeader),0,Type->NonpagedPoolCharge); } @@ -481,7 +483,8 @@ ObpPerformRetentionChecks(POBJECT_HEADER Header) RtlFreeUnicodeString(&Header->Name); } DPRINT("ObPerformRetentionChecks() = Freeing object\n"); - ExFreePool(Header); + if (Header->ObjectType != IoFileObjectType) /* LIBCAPTIVE */ + ExFreePool(Header); } return(STATUS_SUCCESS); }