mirror of
https://github.com/reactos/reactos.git
synced 2024-09-24 11:36:26 +00:00
[FASTFAT] Properly check for buffer size on dir enumeration.
This avoids improper returns when multiple entries are requested and, in rare circumstances, entries not being seen by umode. CORE-14699
This commit is contained in:
parent
b012d48d00
commit
01e2877161
|
@ -104,7 +104,7 @@ VfatGetFileNamesInformation(
|
|||
if (FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName) > BufferLength)
|
||||
return Status;
|
||||
|
||||
if (First || (BufferLength >= FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
if (First || (BufferLength > FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
{
|
||||
pInfo->FileNameLength = DirContext->LongNameU.Length;
|
||||
|
||||
|
@ -149,7 +149,7 @@ VfatGetFileDirectoryInformation(
|
|||
if (FIELD_OFFSET(FILE_DIRECTORY_INFORMATION, FileName) > BufferLength)
|
||||
return Status;
|
||||
|
||||
if (First || (BufferLength >= FIELD_OFFSET(FILE_DIRECTORY_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
if (First || (BufferLength > FIELD_OFFSET(FILE_DIRECTORY_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
{
|
||||
pInfo->FileNameLength = DirContext->LongNameU.Length;
|
||||
/* pInfo->FileIndex = ; */
|
||||
|
@ -266,7 +266,7 @@ VfatGetFileFullDirectoryInformation(
|
|||
if (FIELD_OFFSET(FILE_FULL_DIR_INFORMATION, FileName) > BufferLength)
|
||||
return Status;
|
||||
|
||||
if (First || (BufferLength >= FIELD_OFFSET(FILE_FULL_DIR_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
if (First || (BufferLength > FIELD_OFFSET(FILE_FULL_DIR_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
{
|
||||
pInfo->FileNameLength = DirContext->LongNameU.Length;
|
||||
/* pInfo->FileIndex = ; */
|
||||
|
@ -362,7 +362,7 @@ VfatGetFileBothInformation(
|
|||
if (FIELD_OFFSET(FILE_BOTH_DIR_INFORMATION, FileName) > BufferLength)
|
||||
return Status;
|
||||
|
||||
if (First || (BufferLength >= FIELD_OFFSET(FILE_BOTH_DIR_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
if (First || (BufferLength > FIELD_OFFSET(FILE_BOTH_DIR_INFORMATION, FileName) + DirContext->LongNameU.Length))
|
||||
{
|
||||
pInfo->FileNameLength = DirContext->LongNameU.Length;
|
||||
pInfo->EaSize = 0;
|
||||
|
|
Loading…
Reference in a new issue