From adbf977e89064f4f4aaf3ec7bd179c1215373b04 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 5 Feb 2018 18:42:25 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9BFix=20dicformat=20CRC64=20calculati?= =?UTF-8?q?on=20for=20non=20user=20data=20blocks.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DiscImageChef.DiscImages/DiscImageChef.cs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/DiscImageChef.DiscImages/DiscImageChef.cs b/DiscImageChef.DiscImages/DiscImageChef.cs index 052da543..140195a9 100644 --- a/DiscImageChef.DiscImages/DiscImageChef.cs +++ b/DiscImageChef.DiscImages/DiscImageChef.cs @@ -3623,7 +3623,10 @@ namespace DiscImageChef.DiscImages lzmaProperties = lzmaBlockStream.Properties; lzmaBlockStream.Close(); - Crc64Context.Data(blockStream.ToArray(), out blockCrc); + Crc64Context cmpCrc = new Crc64Context(); + cmpCrc.Update(lzmaProperties); + cmpCrc.Update(blockStream.ToArray()); + blockCrc = cmpCrc.Final(); prefixBlock.cmpLength = (uint)blockStream.Length + LZMA_PROPERTIES_LENGTH; prefixBlock.cmpCrc64 = BitConverter.ToUInt64(blockCrc, 0); prefixBlock.compression = CompressionType.Lzma; @@ -3682,7 +3685,10 @@ namespace DiscImageChef.DiscImages lzmaProperties = lzmaBlockStream.Properties; lzmaBlockStream.Close(); - Crc64Context.Data(blockStream.ToArray(), out blockCrc); + Crc64Context cmpCrc = new Crc64Context(); + cmpCrc.Update(lzmaProperties); + cmpCrc.Update(blockStream.ToArray()); + blockCrc = cmpCrc.Final(); prefixBlock.cmpLength = (uint)blockStream.Length + LZMA_PROPERTIES_LENGTH; prefixBlock.cmpCrc64 = BitConverter.ToUInt64(blockCrc, 0); prefixBlock.compression = CompressionType.Lzma; @@ -3747,7 +3753,10 @@ namespace DiscImageChef.DiscImages lzmaProperties = lzmaBlockStream.Properties; lzmaBlockStream.Close(); - Crc64Context.Data(blockStream.ToArray(), out blockCrc); + Crc64Context cmpCrc = new Crc64Context(); + cmpCrc.Update(lzmaProperties); + cmpCrc.Update(blockStream.ToArray()); + blockCrc = cmpCrc.Final(); subchannelBlock.cmpLength = (uint)blockStream.Length + LZMA_PROPERTIES_LENGTH; subchannelBlock.cmpCrc64 = BitConverter.ToUInt64(blockCrc, 0); subchannelBlock.compression = CompressionType.Lzma; @@ -3919,7 +3928,10 @@ namespace DiscImageChef.DiscImages lzmaProperties = lzmaBlockStream.Properties; lzmaBlockStream.Close(); - Crc64Context.Data(blockStream.ToArray(), out blockCrc); + Crc64Context cmpCrc = new Crc64Context(); + cmpCrc.Update(lzmaProperties); + cmpCrc.Update(blockStream.ToArray()); + blockCrc = cmpCrc.Final(); subchannelBlock.cmpLength = (uint)blockStream.Length + LZMA_PROPERTIES_LENGTH; subchannelBlock.cmpCrc64 = BitConverter.ToUInt64(blockCrc, 0); subchannelBlock.compression = CompressionType.Lzma;