From 6ec730fc4ca1896350a5f0af4f2f06454a470183 Mon Sep 17 00:00:00 2001 From: Hartmut Birr Date: Sun, 29 May 2005 15:41:24 +0000 Subject: [PATCH] Reset the permanent flag if the object is changed to non permanent. svn path=/trunk/; revision=15665 --- reactos/ntoskrnl/ob/ntobj.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/reactos/ntoskrnl/ob/ntobj.c b/reactos/ntoskrnl/ob/ntobj.c index a7ffab75e62..527ac5d4d8b 100644 --- a/reactos/ntoskrnl/ob/ntobj.c +++ b/reactos/ntoskrnl/ob/ntobj.c @@ -223,12 +223,19 @@ ObpSetPermanentObject (IN PVOID ObjectBody, IN BOOLEAN Permanent) POBJECT_HEADER ObjectHeader; ObjectHeader = BODY_TO_HEADER(ObjectBody); - ObjectHeader->Flags |= OB_FLAG_PERMANENT; - - if (ObjectHeader->HandleCount == 0 && !Permanent && HEADER_TO_OBJECT_NAME(ObjectHeader)->Directory) + ASSERT (ObjectHeader->PointerCount > 0); + if (Permanent) { - /* Remove the object from the namespace */ - ObpRemoveEntryDirectory(ObjectHeader); + ObjectHeader->Flags |= OB_FLAG_PERMANENT; + } + else + { + ObjectHeader->Flags &= ~OB_FLAG_PERMANENT; + if (ObjectHeader->HandleCount == 0 && HEADER_TO_OBJECT_NAME(ObjectHeader)->Directory) + { + /* Remove the object from the namespace */ + ObpRemoveEntryDirectory(ObjectHeader); + } } }