[CMLIB]
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 2 Feb 2014 16:59:03 +0000 (16:59 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 2 Feb 2014 16:59:03 +0000 (16:59 +0000)
Use a #define instead of the magic 31.

svn path=/trunk/; revision=61923

reactos/lib/cmlib/hivedata.h
reactos/lib/cmlib/hiveinit.c

index d2838fd..b1e9a4c 100644 (file)
@@ -107,6 +107,8 @@ typedef enum
  * On-disk header for registry hive file.
  */
 
+#define HIVE_FILENAME_MAXLEN           31
+
 typedef struct _HBASE_BLOCK
 {
    /* Hive identifier "regf" (0x66676572) */
@@ -146,7 +148,7 @@ typedef struct _HBASE_BLOCK
 
    /* Last 31 UNICODE characters, plus terminating NULL character,
       of the full name of the hive file */
-   WCHAR FileName[32];
+   WCHAR FileName[HIVE_FILENAME_MAXLEN + 1];
 
    ULONG Reserved1[99];
 
index 1bf7a75..2a5dd6a 100644 (file)
@@ -118,7 +118,7 @@ HvpCreateHive(
    /* Copy the 31 last characters of the hive file name if any */
    if (FileName)
    {
-      if (FileName->Length / sizeof(WCHAR) <= 31)
+      if (FileName->Length / sizeof(WCHAR) <= HIVE_FILENAME_MAXLEN)
       {
          RtlCopyMemory(BaseBlock->FileName,
                        FileName->Buffer,
@@ -127,12 +127,13 @@ HvpCreateHive(
       else
       {
          RtlCopyMemory(BaseBlock->FileName,
-                       FileName->Buffer + FileName->Length / sizeof(WCHAR) - 31,
-                       31 * sizeof(WCHAR));
+                       FileName->Buffer +
+                       FileName->Length / sizeof(WCHAR) - HIVE_FILENAME_MAXLEN,
+                       HIVE_FILENAME_MAXLEN * sizeof(WCHAR));
       }
 
       /* NULL-terminate */
-      BaseBlock->FileName[31] = L'\0';
+      BaseBlock->FileName[HIVE_FILENAME_MAXLEN] = L'\0';
    }
 
    BaseBlock->CheckSum = HvpHiveHeaderChecksum(BaseBlock);