diff --git a/reactos/lib/cmlib/hivecell.c b/reactos/lib/cmlib/hivecell.c index 25ec9a6a1cd..c87ba71b48d 100644 --- a/reactos/lib/cmlib/hivecell.c +++ b/reactos/lib/cmlib/hivecell.c @@ -124,6 +124,8 @@ BOOLEAN CMAPI HvIsCellDirty(IN PHHIVE Hive, IN HCELL_INDEX Cell) { + BOOLEAN IsDirty = FALSE; + /* Sanity checks */ ASSERT(Hive->ReadOnly == FALSE); @@ -132,7 +134,11 @@ HvIsCellDirty(IN PHHIVE Hive, return TRUE; /* Check if the dirty bit is set */ - return RtlCheckBit(&Hive->DirtyVector, Cell / HV_BLOCK_SIZE); + if (RtlCheckBit(&Hive->DirtyVector, Cell / HV_BLOCK_SIZE)) + IsDirty = TRUE; + + /* Return result as boolean*/ + return IsDirty; } static ULONG __inline CMAPI diff --git a/reactos/lib/cmlib/hivewrt.c b/reactos/lib/cmlib/hivewrt.c index 0258e18efb4..33a2d7aabb9 100644 --- a/reactos/lib/cmlib/hivewrt.c +++ b/reactos/lib/cmlib/hivewrt.c @@ -189,7 +189,7 @@ HvpWriteHive( } BlockPtr = (PVOID)RegistryHive->Storage[Stable].BlockList[BlockIndex].BlockAddress; - FileOffset = (ULONGLONG)(BlockIndex + 1) * (ULONGLONG)HV_BLOCK_SIZE; + FileOffset = (BlockIndex + 1) * HV_BLOCK_SIZE; /* Write hive block */ Success = RegistryHive->FileWrite(RegistryHive, HFILE_TYPE_PRIMARY,