[ros-diffs] [ion] 22686: - 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).

ion at svn.reactos.org ion at svn.reactos.org
Thu Jun 29 07:20:17 CEST 2006


Author: ion
Date: Thu Jun 29 09:20:16 2006
New Revision: 22686

URL: http://svn.reactos.org/svn/reactos?rev=22686&view=rev
Log:
- 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).

Modified:
    trunk/reactos/ntoskrnl/ob/obhandle.c
    trunk/reactos/ntoskrnl/ob/obref.c

Modified: trunk/reactos/ntoskrnl/ob/obhandle.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ob/obhandle.c?rev=22686&r1=22685&r2=22686&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ob/obhandle.c (original)
+++ trunk/reactos/ntoskrnl/ob/obhandle.c Thu Jun 29 09:20:16 2006
@@ -242,7 +242,7 @@
         //
         // WE DONT CLOSE REGISTRY HANDLES BECAUSE CM IS BRAINDEAD
         //
-        DPRINT("NOT CLOSING THE KEY\n");
+        DPRINT1("NOT CLOSING THE KEY\n");
     }
     else
     {

Modified: trunk/reactos/ntoskrnl/ob/obref.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ob/obref.c?rev=22686&r1=22685&r2=22686&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ob/obref.c (original)
+++ trunk/reactos/ntoskrnl/ob/obref.c Thu Jun 29 09:20:16 2006
@@ -90,27 +90,18 @@
 
     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)
-            {
-                DPRINT1("Unexpected misbehaving object: %wZ\n", &Header->Type->Name);
-            }
-        }
-        else
-        {
-            DPRINT1("Cm needs fixing!\n");
+        if(Header->HandleCount)
+        {
+            DPRINT1("Misbehaving object: %wZ\n", &Header->Type->Name);
+            return;
         }
 
         /* Check if we're at PASSIVE */




More information about the Ros-diffs mailing list