Add fixes to WriteAttribute():
-Remove erroneous check for end of run (before writing to the last run returned)
-Properly dereference RealLengthWritten pointer, as reported in CR-90

svn path=/branches/GSoC_2016/NTFS/; revision=71616
This commit is contained in:
Trevor Thompson 2016-06-12 04:02:52 +00:00 committed by Thomas Faber
parent 58a13831ef
commit ea6b9622c4

View file

@ -517,17 +517,6 @@ WriteAttribute(PDEVICE_EXTENSION Vcb,
}
else
DataRunStartLCN = -1;
if (*DataRun == 0)
{
if (Length == 0)
return STATUS_SUCCESS;
// This code shouldn't execute, because we should have extended the allocation size
// or failed the request by now. It's just a sanity check.
DPRINT1("Encountered EOF before expected!\n");
return STATUS_END_OF_FILE;
}
}
// Do we have more data to write?
@ -556,7 +545,7 @@ WriteAttribute(PDEVICE_EXTENSION Vcb,
Length -= WriteLength;
SourceBuffer += WriteLength;
RealLengthWritten += WriteLength;
*RealLengthWritten += WriteLength;
// We finished this request, but there's still data in this data run.
if (Length == 0 && WriteLength != DataRunLength * Vcb->NtfsInfo.BytesPerCluster)