- Don't leave a bad handle or object pointer
authorCameron Gutman <aicommander@gmail.com>
Tue, 7 Apr 2009 05:07:09 +0000 (05:07 +0000)
committerCameron Gutman <aicommander@gmail.com>
Tue, 7 Apr 2009 05:07:09 +0000 (05:07 +0000)
 - Make sure we don't try to dereference a non-referenced handle

svn path=/trunk/; revision=40412

reactos/drivers/network/afd/afd/lock.c
reactos/drivers/network/afd/afd/tdi.c

index cb22672..d8ada70 100644 (file)
@@ -187,6 +187,9 @@ PAFD_HANDLE LockHandles( PAFD_HANDLE HandleArray, UINT HandleCount ) {
                 (PVOID*)&FileObjects[i].Handle,
                 NULL );
        }
+
+        if( !NT_SUCCESS(Status) )
+            FileObjects[i].Handle = 0;
     }
 
     if( !NT_SUCCESS(Status) ) {
index 2567ce1..4d023e7 100644 (file)
@@ -137,14 +137,17 @@ static NTSTATUS TdiOpenDevice(
         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;