🐛Fix error sector list overflowing total sectors on dump.

This commit is contained in:
2018-02-03 02:53:38 +00:00
parent f1672cd5d3
commit ac7f760a77
5 changed files with 10 additions and 0 deletions

View File

@@ -272,6 +272,8 @@ namespace DiscImageChef.Core.Devices.Dumping
}
else
{
if(i + skip > blocks) skip = (uint)(blocks - i);
for(ulong b = i; b < i + skip; b++) resume.BadBlocks.Add(b);
mhddLog.Write(i, duration < 500 ? 65535 : duration);

View File

@@ -731,6 +731,8 @@ namespace DiscImageChef.Core.Devices.Dumping
// TODO: Reset device after X errors
if(stopOnError) return; // TODO: Return more cleanly
if(i + skip > blocks) skip = (uint)(blocks - i);
// Write empty data
DateTime writeStart = DateTime.Now;
if(supportedSubchannel != MmcSubchannel.None)

View File

@@ -385,6 +385,8 @@ namespace DiscImageChef.Core.Devices.Dumping
// TODO: Reset device after X errors
if(stopOnError) return; // TODO: Return more cleanly
if(i + skip > blocks) skip = (uint)(blocks - i);
// Write empty data
DateTime writeStart = DateTime.Now;
outputPlugin.WriteSectors(new byte[blockSize * skip], i, skip);

View File

@@ -317,6 +317,8 @@ namespace DiscImageChef.Core.Devices.Dumping
}
else
{
if(i + skip > blocks) skip = (uint)(blocks - i);
for(ulong b = i; b < i + skip; b++) resume.BadBlocks.Add(b);
mhddLog.Write(i, duration < 500 ? 65535 : duration);

View File

@@ -437,6 +437,8 @@ namespace DiscImageChef.Core.Devices.Dumping
// TODO: Reset device after X errors
if(stopOnError) return; // TODO: Return more cleanly
if(i + skip > blocks) skip = (uint)(blocks - i);
// Write empty data
DateTime writeStart = DateTime.Now;
outputPlugin.WriteSectors(new byte[BLOCK_SIZE * skip], i, skip);