By reformatting my code and breaking ReactOS 1) Coding Style and 2)
Commit Rules?
On 5-Feb-09, at 4:30 PM, dgorbachev(a)svn.reactos.org wrote:
  Author: dgorbachev
 Date: Thu Feb  5 15:30:21 2009
 New Revision: 39422
 URL: 
http://svn.reactos.org/svn/reactos?rev=39422&view=rev
 Log:
 Fix bug #4129 in CmpGetNameControlBlock().
 Modified:
  trunk/reactos/ntoskrnl/config/cmkcbncb.c
 Modified: trunk/reactos/ntoskrnl/config/cmkcbncb.c
 URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmkcbncb.c…
 =
 =
 =
 =
 =
 =
 =
 =
 ======================================================================
 --- trunk/reactos/ntoskrnl/config/cmkcbncb.c [iso-8859-1] (original)
 +++ trunk/reactos/ntoskrnl/config/cmkcbncb.c [iso-8859-1] Thu Feb  5
 15:30:21 2009
 @@ -175,15 +175,16 @@
   Length = NodeName->Length / sizeof(WCHAR);
   for (i = 0; i < (NodeName->Length / sizeof(WCHAR)); i++)
   {
 -        /* Check if this is a valid character */
 -        if (*NodeName->Buffer > (UCHAR)-1)
 +        /* Check if this is a 16-bit character */
 +        if (NodeName->Buffer[i] > (UCHAR)-1)
       {
           /* This is the actual size, and we know we're not
 compressed */
           Length = NodeName->Length;
           IsCompressed = FALSE;
 -        }
 -    }
 -
 +            break;
 +        }
 +    }
 +
   /* Lock the NCB entry */
   CmpAcquireNcbLockExclusiveByKey(ConvKey);
 @@ -195,7 +196,7 @@
       Ncb = CONTAINING_RECORD(HashEntry, CM_NAME_CONTROL_BLOCK,
 NameHash);
       /* Check if the hash matches */
 -        if ((ConvKey = HashEntry->ConvKey) && (Length = Ncb-
 NameLength)) 
 +        if (ConvKey ==
HashEntry->ConvKey && Length == Ncb-
 NameLength) 
       {
           /* Assume success */
           Found = TRUE;
 @@ -242,7 +243,7 @@
       /* Go to the next hash */
       HashEntry = HashEntry->NextHash;
   }
 -
 +
   /* Check if we didn't find it */
   if (!Found)
   {
 @@ -255,16 +256,15 @@
           CmpReleaseNcbLockByKey(ConvKey);
           return NULL;
       }
 -
 +
       /* Clear it out */
       RtlZeroMemory(Ncb, NcbSize);
 -
 +
       /* Check if the name was compressed */
       if (IsCompressed)
       {
           /* Copy the compressed name */
 -            Ncb->Compressed = TRUE;
 -            for (i = 0; i < Length; i++)
 +            for (i = 0; i < NodeName->Length / sizeof(WCHAR); i++)
           {
               /* Copy Unicode to ANSI */
               ((PCHAR)Ncb->Name)[i] =
 (CHAR)RtlUpcaseUnicodeChar(NodeName->Buffer[i]);
 @@ -273,25 +273,25 @@
       else
       {
           /* Copy the name directly */
 -            Ncb->Compressed = FALSE;
 -            for (i = 0; i < Length; i++)
 +            for (i = 0; i < NodeName->Length / sizeof(WCHAR); i++)
           {
               /* Copy each unicode character */
               Ncb->Name[i] = RtlUpcaseUnicodeChar(NodeName-
 Buffer[i]); 
           }
       }
 -
 +
       /* Setup the rest of the NCB */
 +        Ncb->Compressed = IsCompressed;
       Ncb->ConvKey = ConvKey;
       Ncb->RefCount++;
       Ncb->NameLength = Length;
 -
 +
       /* Insert the name in the hash table */
       HashEntry = &Ncb->NameHash;
       HashEntry->NextHash = GET_HASH_ENTRY(CmpNameCacheTable,
 ConvKey).Entry;
       GET_HASH_ENTRY(CmpNameCacheTable, ConvKey).Entry = HashEntry;
   }
 -
 +
   /* Release NCB lock */
   CmpReleaseNcbLockByKey(ConvKey);
 @@ -537,18 +537,18 @@
   }
   /* Check if there's no linked cell */
 -      if (Kcb->KeyCell == HCELL_NIL)
 +    if (Kcb->KeyCell == HCELL_NIL)
   {
       /* Make sure it's a delete */
 -              ASSERT(Kcb->Delete);
 -              KeyNode = NULL;
 -      }
 +        ASSERT(Kcb->Delete);
 +        KeyNode = NULL;
 +    }
   else
   {
       /* Get the key node */
 -          KeyNode = (PCM_KEY_NODE)HvGetCell(Kcb->KeyHive, Kcb->KeyCell);
 -      }
 -
 +        KeyNode = (PCM_KEY_NODE)HvGetCell(Kcb->KeyHive, Kcb-
 KeyCell); 
 +    }
 +
   /* Check if we got the node */
   if (!KeyNode)
   {
 @@ -561,7 +561,7 @@
       Kcb->ExtFlags &= ~CM_KCB_INVALID_CACHED_INFO;
       Kcb->SubKeyCount = KeyNode->SubKeyCounts[Stable] +
                          KeyNode->SubKeyCounts[Volatile];
 -
 +
       /* Release the cell */
       HvReleaseCell(Kcb->KeyHive, Kcb->KeyCell);
   }
 @@ -865,12 +865,12 @@
   }
   /* Check if this is a KCB inside a frozen hive */
 -      if ((Kcb) && (((PCMHIVE)Hive)->Frozen) && (!(Kcb->Flags
&
 KEY_SYM_LINK)))
 +    if ((Kcb) && (((PCMHIVE)Hive)->Frozen) && (!(Kcb->Flags &
 KEY_SYM_LINK)))
   {
       /* Don't add these to the delay close */
 -              Kcb->ExtFlags |= CM_KCB_NO_DELAY_CLOSE;
 -    }
 -
 +        Kcb->ExtFlags |= CM_KCB_NO_DELAY_CLOSE;
 +    }
 +
   /* Sanity check */
   ASSERT((!Kcb) || (Kcb->Delete == FALSE));