sys: IRP_MJ_READ, FspSafeMdlCreate, FspSafeMdlCopyBack: bug fixes

This commit is contained in:
Bill Zissimopoulos 2016-03-08 16:24:08 -08:00
parent 6efb5cc113
commit 79119a22cb
2 changed files with 4 additions and 3 deletions

View File

@ -297,6 +297,7 @@ NTSTATUS FspFsvolReadComplete(
ULONG InfoChangeNumber;
BOOLEAN Success;
if (0 != SafeMdl)
FspSafeMdlCopyBack(SafeMdl);
if (!PagingIo)

View File

@ -592,7 +592,7 @@ NTSTATUS FspSafeMdlCreate(PMDL UserMdl, LOCK_OPERATION Operation, FSP_SAFE_MDL *
if (Buffer1)
{
RtlCopyMemory((PUINT8)SafeMdl->Buffer + (BufferPageCount - 1) * PAGE_SIZE,
(PUINT8)VirtualAddress + (PageCount - 1) * PAGE_SIZE, ByteOffsetEnd1);
PAGE_ALIGN((PUINT8)VirtualAddress + (PageCount - 1) * PAGE_SIZE), ByteOffsetEnd1);
RtlZeroMemory((PUINT8)SafeMdl->Buffer + (BufferPageCount - 1) * PAGE_SIZE + ByteOffsetEnd1,
PAGE_SIZE - ByteOffsetEnd1);
SafePfnArray[PageCount - 1] = TempPfnArray[BufferPageCount - 1];
@ -680,7 +680,7 @@ VOID FspSafeMdlCopyBack(FSP_SAFE_MDL *SafeMdl)
RtlCopyMemory((PUINT8)VirtualAddress,
(PUINT8)SafeMdl->Buffer + ByteOffsetBgn0, ByteOffsetEnd0 - ByteOffsetBgn0);
if (Buffer1)
RtlCopyMemory((PUINT8)VirtualAddress + (PageCount - 1) * PAGE_SIZE,
RtlCopyMemory(PAGE_ALIGN((PUINT8)VirtualAddress + (PageCount - 1) * PAGE_SIZE),
(PUINT8)SafeMdl->Buffer + (BufferPageCount - 1) * PAGE_SIZE, ByteOffsetEnd1);
}
}