[ADVAPI32]
authorThomas Faber <thomas.faber@reactos.org>
Sat, 25 Apr 2015 20:34:35 +0000 (20:34 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sat, 25 Apr 2015 20:34:35 +0000 (20:34 +0000)
- Account for RegQueryInfoKey no longer including the null terminator in EnumHKCRKey/EnumHKCRValue
CORE-6976

svn path=/trunk/; revision=67426

reactos/dll/win32/advapi32/reg/hkcr.c
reactos/dll/win32/advapi32/reg/reg.c

index f0b4a83..2119c3b 100644 (file)
@@ -711,11 +711,12 @@ EnumHKCRKey(
         goto Exit;
     }
 
+    MaxFallbackSubKeyLen++;
     TRACE("Maxfallbacksubkeylen: %d\n", MaxFallbackSubKeyLen);
 
     /* Allocate our buffer */
     FallbackSubKeyName = RtlAllocateHeap(
-        RtlGetProcessHeap(), 0, (MaxFallbackSubKeyLen + 1) * sizeof(WCHAR));
+        RtlGetProcessHeap(), 0, MaxFallbackSubKeyLen * sizeof(WCHAR));
     if (!FallbackSubKeyName)
     {
         ErrorCode = ERROR_NOT_ENOUGH_MEMORY;
@@ -925,11 +926,12 @@ EnumHKCRValue(
         goto Exit;
     }
 
+    MaxFallbackValueNameLen++;
     TRACE("Maxfallbacksubkeylen: %d\n", MaxFallbackValueNameLen);
 
     /* Allocate our buffer */
     FallbackValueName = RtlAllocateHeap(
-        RtlGetProcessHeap(), 0, (MaxFallbackValueNameLen + 1) * sizeof(WCHAR));
+        RtlGetProcessHeap(), 0, MaxFallbackValueNameLen * sizeof(WCHAR));
     if (!FallbackValueName)
     {
         ErrorCode = ERROR_NOT_ENOUGH_MEMORY;
index 8e9c3f0..a6aa22e 100644 (file)
@@ -3789,7 +3789,6 @@ RegQueryInfoKeyW(HKEY hKey,
         lpftLastWriteTime->dwHighDateTime = FullInfo->LastWriteTime.u.HighPart;
     }
 
-    ErrorCode = ERROR_SUCCESS;
     if (lpClass != NULL)
     {
         if (*lpcClass == 0)