- Fail if DatagramRecv->Address is NULL
authorCameron Gutman <aicommander@gmail.com>
Sun, 24 Aug 2008 13:25:19 +0000 (13:25 +0000)
committerCameron Gutman <aicommander@gmail.com>
Sun, 24 Aug 2008 13:25:19 +0000 (13:25 +0000)
svn path=/branches/aicom-network-fixes/; revision=35596

drivers/network/afd/afd/read.c

index a95ffb1..15f7b4d 100644 (file)
@@ -480,12 +480,16 @@ PacketSocketRecvComplete(
        DatagramRecv->Address =
            TaCopyTransportAddress( FCB->AddressFrom->RemoteAddress );
 
-       InsertTailList( &FCB->DatagramList, &DatagramRecv->ListEntry );
+       if( !DatagramRecv->Address ) Status = STATUS_NO_MEMORY;
+
     } else Status = STATUS_NO_MEMORY;
 
     if( !NT_SUCCESS( Status ) ) {
+       if( DatagramRecv ) ExFreePool( DatagramRecv );
        SocketStateUnlock( FCB );
        return Status;
+    } else {
+       InsertTailList( &FCB->DatagramList, &DatagramRecv->ListEntry );
     }
 
     /* Satisfy as many requests as we can */