- Fix a bug with our tei_instance selection (we could end up with the same tei_insta...
authorCameron Gutman <aicommander@gmail.com>
Fri, 15 Jan 2010 21:00:50 +0000 (21:00 +0000)
committerCameron Gutman <aicommander@gmail.com>
Fri, 15 Jan 2010 21:00:50 +0000 (21:00 +0000)
svn path=/branches/aicom-network-branch/; revision=45090

drivers/network/tcpip/tcpip/info.c

index 2eaae32..4e11d9a 100644 (file)
 VOID AddEntity(ULONG EntityType, PVOID Context, ULONG Flags)
 {
     KIRQL OldIrql;
-    ULONG i, Count = 0;
+    ULONG i, Instance = 0;
+    BOOLEAN ChoseIndex = FALSE;
 
     TcpipAcquireSpinLock(&EntityListLock, &OldIrql);
 
-    for (i = 0; i < EntityCount; i++)
-         if (EntityList[i].tei_entity == EntityType)
-             Count++;
+    while (!ChoseIndex)
+    {
+         ChoseIndex = TRUE;
+         for (i = 0; i < EntityCount; i++)
+         {
+             if (EntityList[i].tei_entity == EntityType &&
+                 EntityList[i].tei_instance == Instance)
+             {
+                 Instance++;
+                 ChoseIndex = FALSE;
+             }
+         }
+    }
 
     EntityList[EntityCount].tei_entity = EntityType;
-    EntityList[EntityCount].tei_instance = Count;
+    EntityList[EntityCount].tei_instance = Instance;
     EntityList[EntityCount].context = Context;
     EntityList[EntityCount].flags = Flags;
     EntityCount++;