From dead0458d909a82b85998f5f4795ba81a3674913 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 8 Feb 2014 14:54:57 +0000 Subject: [PATCH] [NTOSKRNL] Fix handling of compressed names in the registry. svn path=/trunk/; revision=62036 --- reactos/ntoskrnl/config/cmname.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/reactos/ntoskrnl/config/cmname.c b/reactos/ntoskrnl/config/cmname.c index 94b9e07d730..9fc91256e4d 100644 --- a/reactos/ntoskrnl/config/cmname.c +++ b/reactos/ntoskrnl/config/cmname.c @@ -65,7 +65,7 @@ CmpCopyCompressedName(IN PWCHAR Destination, 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 @@ CmpNameSize(IN PHHIVE Hive, { 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 @@ CmpCompareCompressedName(IN PCUNICODE_STRING SearchName, 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; }