[ros-diffs] [cgutman] 40412: - Don't leave a bad handle or object pointer - Make sure we don't try to dereference a non-referenced handle

cgutman at svn.reactos.org cgutman at svn.reactos.org
Tue Apr 7 07:07:10 CEST 2009


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;



More information about the Ros-diffs mailing list