From 1c69156be9bd4edb8f617adee525823ba23e794b Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Thu, 29 Jun 2006 05:20:16 +0000 Subject: [PATCH] - Cleanup the checks for mishbeaving objects a bit, and now quit the Dereference routine instead of doing the dereference. This has the advantage making console applications work again (note: this is NOT a fix. I'm just making the situation less bad until I fix ObDuplicateObject since that seems to be messing Events up, and until Cm gets fixed). svn path=/trunk/; revision=22686 --- reactos/ntoskrnl/ob/obhandle.c | 2 +- reactos/ntoskrnl/ob/obref.c | 17 ++++------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/reactos/ntoskrnl/ob/obhandle.c b/reactos/ntoskrnl/ob/obhandle.c index 252f3d2f350..9abbce0c3d3 100644 --- a/reactos/ntoskrnl/ob/obhandle.c +++ b/reactos/ntoskrnl/ob/obhandle.c @@ -242,7 +242,7 @@ ObpCloseHandleTableEntry(IN PHANDLE_TABLE HandleTable, // // WE DONT CLOSE REGISTRY HANDLES BECAUSE CM IS BRAINDEAD // - DPRINT("NOT CLOSING THE KEY\n"); + DPRINT1("NOT CLOSING THE KEY\n"); } else { diff --git a/reactos/ntoskrnl/ob/obref.c b/reactos/ntoskrnl/ob/obref.c index 26d52e31c63..fcdf068d65c 100644 --- a/reactos/ntoskrnl/ob/obref.c +++ b/reactos/ntoskrnl/ob/obref.c @@ -90,27 +90,18 @@ ObfDereferenceObject(IN PVOID Object) if (Header->PointerCount <= Header->HandleCount) { - if (!wcscmp(Header->Type->Name.Buffer, L"Event")) - { - //KEBUGCHECK(0); - } DPRINT1("Misbehaving object: %wZ\n", &Header->Type->Name); + return; } /* Check whether the object can now be deleted. */ if (!(InterlockedDecrement(&Header->PointerCount))) { /* Sanity check */ - if (wcscmp(Header->Type->Name.Buffer, L"Key")) + if(Header->HandleCount) { - if(Header->HandleCount) - { - DPRINT1("Unexpected misbehaving object: %wZ\n", &Header->Type->Name); - } - } - else - { - DPRINT1("Cm needs fixing!\n"); + DPRINT1("Misbehaving object: %wZ\n", &Header->Type->Name); + return; } /* Check if we're at PASSIVE */