Author: tkreuzer
Date: Sat Feb 8 14:54:57 2014
New Revision: 62036
URL:
http://svn.reactos.org/svn/reactos?rev=62036&view=rev
Log:
[NTOSKRNL]
Fix handling of compressed names in the registry.
Modified:
trunk/reactos/ntoskrnl/config/cmname.c
Modified: trunk/reactos/ntoskrnl/config/cmname.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmname.c?r…
==============================================================================
--- trunk/reactos/ntoskrnl/config/cmname.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/config/cmname.c [iso-8859-1] Sat Feb 8 14:54:57 2014
@@ -65,7 +65,7 @@
for (i = 0; i < Length; i++)
{
/* Copy each character */
- Destination[i] = (WCHAR)((PCHAR)Source)[i];
+ Destination[i] = (WCHAR)((PUCHAR)Source)[i];
}
}
@@ -76,7 +76,7 @@
{
ULONG i;
- /* For old hives, just retun the length */
+ /* For old hives, just return the length */
if (Hive->Version == 1) return Name->Length;
/* For new versions, check for compressed name */
@@ -111,27 +111,27 @@
IN ULONG NameLength)
{
WCHAR *p;
- CHAR *pp;
- WCHAR p1, p2;
+ UCHAR *pp;
+ WCHAR chr1, chr2;
USHORT SearchLength;
LONG Result;
/* Set the pointers and length and then loop */
p = SearchName->Buffer;
- pp = (PCHAR)CompressedName;
+ pp = (PUCHAR)CompressedName;
SearchLength = (SearchName->Length / sizeof(WCHAR));
while ((SearchLength) && (NameLength))
{
/* Get the characters */
- p1 = *p++;
- p2 = (WCHAR)(*pp++);
+ chr1 = *p++;
+ chr2 = (WCHAR)(*pp++);
/* Check if we have a direct match */
- if (p1 != p2)
+ if (chr1 != chr2)
{
/* See if they match and return result if they don't */
- Result = (LONG)RtlUpcaseUnicodeChar(p1) -
- (LONG)RtlUpcaseUnicodeChar(p2);
+ Result = (LONG)RtlUpcaseUnicodeChar(chr1) -
+ (LONG)RtlUpcaseUnicodeChar(chr2);
if (Result) return Result;
}