mirror of
https://github.com/reactos/reactos.git
synced 2025-06-04 08:50:27 +00:00
[NTOS]
- Fix CcMdlReadComplete2 prototype. - Fix a bug in Dominique Cote's code: when performing FsRtlGetFileSize, the length of the buffer should be set accordingly to the information class asked for, that is - FILE_STANDARD_INFORMATION structure. Previous calculation formula makes no sense at all and leads to memory corruption (if filesystem driver is stupid enough) or inability to get file size (if filesystem driver is coded by good developers). svn path=/trunk/; revision=59495
This commit is contained in:
parent
ee87f2a4f6
commit
b666ebecda
5 changed files with 12 additions and 11 deletions
4
reactos/ntoskrnl/cache/mdlsup.c
vendored
4
reactos/ntoskrnl/cache/mdlsup.c
vendored
|
@ -80,8 +80,8 @@ CcMdlReadComplete(IN PFILE_OBJECT FileObject,
|
|||
|
||||
VOID
|
||||
NTAPI
|
||||
CcMdlReadComplete2(IN PMDL MdlChain,
|
||||
IN PFILE_OBJECT FileObject)
|
||||
CcMdlReadComplete2(IN PFILE_OBJECT FileObject,
|
||||
IN PMDL MdlChain)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
}
|
||||
|
|
4
reactos/ntoskrnl/cache/newcc.h
vendored
4
reactos/ntoskrnl/cache/newcc.h
vendored
|
@ -44,8 +44,8 @@ CcPfInitializePrefetcher(VOID);
|
|||
|
||||
VOID
|
||||
NTAPI
|
||||
CcMdlReadComplete2(IN PMDL MemoryDescriptorList,
|
||||
IN PFILE_OBJECT FileObject);
|
||||
CcMdlReadComplete2(IN PFILE_OBJECT FileObject,
|
||||
IN PMDL MemoryDescriptorList);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
|
|
|
@ -51,8 +51,9 @@ CcMdlRead (
|
|||
VOID
|
||||
NTAPI
|
||||
CcMdlReadComplete2 (
|
||||
IN PMDL MemoryDescriptorList,
|
||||
IN PFILE_OBJECT FileObject)
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PMDL MemoryDescriptorList
|
||||
)
|
||||
{
|
||||
PMDL Mdl;
|
||||
|
||||
|
@ -104,7 +105,7 @@ CcMdlReadComplete (
|
|||
}
|
||||
|
||||
/* Use slow path */
|
||||
CcMdlReadComplete2(MdlChain, FileObject);
|
||||
CcMdlReadComplete2(FileObject, MdlChain);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -880,7 +880,7 @@ FsRtlGetFileSize(IN PFILE_OBJECT FileObject,
|
|||
IoStackLocation->FileObject = FileObject;
|
||||
IoStackLocation->DeviceObject = DeviceObject;
|
||||
IoStackLocation->Parameters.QueryFile.Length =
|
||||
ALIGN_UP(sizeof(FILE_INFORMATION_CLASS), ULONG);
|
||||
sizeof(FILE_STANDARD_INFORMATION);
|
||||
IoStackLocation->Parameters.QueryFile.FileInformationClass =
|
||||
FileStandardInformation;
|
||||
|
||||
|
@ -1019,7 +1019,7 @@ FsRtlMdlReadCompleteDev(IN PFILE_OBJECT FileObject,
|
|||
IN PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
/* Call the Cache Manager */
|
||||
CcMdlReadComplete2(MemoryDescriptorList, FileObject);
|
||||
CcMdlReadComplete2(FileObject, MemoryDescriptorList);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -172,8 +172,8 @@ CcPfInitializePrefetcher(
|
|||
VOID
|
||||
NTAPI
|
||||
CcMdlReadComplete2(
|
||||
IN PMDL MemoryDescriptorList,
|
||||
IN PFILE_OBJECT FileObject
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PMDL MemoryDescriptorList
|
||||
);
|
||||
|
||||
VOID
|
||||
|
|
Loading…
Reference in a new issue