Author: cgutman
Date: Tue Apr  7 09:07:09 2009
New Revision: 40412

URL: http://svn.reactos.org/svn/reactos?rev=40412&view=rev
Log:
 - Don't leave a bad handle or object pointer
 - Make sure we don't try to dereference a non-referenced handle

Modified:
    trunk/reactos/drivers/network/afd/afd/lock.c
    trunk/reactos/drivers/network/afd/afd/tdi.c

Modified: trunk/reactos/drivers/network/afd/afd/lock.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/afd/afd/lock.c?rev=40412&r1=40411&r2=40412&view=diff
==============================================================================
--- trunk/reactos/drivers/network/afd/afd/lock.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/afd/afd/lock.c [iso-8859-1] Tue Apr  7 
09:07:09 2009
@@ -187,6 +187,9 @@
                 (PVOID*)&FileObjects[i].Handle,
                 NULL );
        }
+
+        if( !NT_SUCCESS(Status) )
+            FileObjects[i].Handle = 0;
     }
 
     if( !NT_SUCCESS(Status) ) {

Modified: trunk/reactos/drivers/network/afd/afd/tdi.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/afd/afd/tdi.c?rev=40412&r1=40411&r2=40412&view=diff
==============================================================================
--- trunk/reactos/drivers/network/afd/afd/tdi.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/afd/afd/tdi.c [iso-8859-1] Tue Apr  7 
09:07:09 2009
@@ -137,14 +137,17 @@
         if (!NT_SUCCESS(Status)) {
                        AFD_DbgPrint(MIN_TRACE, ("ObReferenceObjectByHandle() 
failed with status (0x%X).\n", Status));
                        ZwClose(*Handle);
-                       *Handle = NULL;
         } else {
                        AFD_DbgPrint(MAX_TRACE, ("Got handle (0x%X)  Object 
(0x%X)\n",
                                                                         
*Handle, *Object));
         }
     } else {
         AFD_DbgPrint(MIN_TRACE, ("ZwCreateFile() failed with status (0x%X)\n", 
Status));
+    }
+
+    if (!NT_SUCCESS(Status)) {
         *Handle = NULL;
+        *Object = NULL;
     }
 
     return Status;

Reply via email to