[FASTFAT] Fix size checking in VfatGetFileNameInformation()

This commit is contained in:
Pierre Schweitzer 2017-12-09 12:45:16 +01:00
parent 9f3c80193e
commit 28343c6c0c
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B

View file

@ -101,17 +101,17 @@ VfatGetFileNameInformation(
*Written = 0;
Status = STATUS_BUFFER_OVERFLOW;
if (FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName) > BufferLength)
if (FIELD_OFFSET(FILE_NAME_INFORMATION, FileName) > BufferLength)
return Status;
if (First || (BufferLength >= FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName) + DirContext->LongNameU.Length))
if (First || (BufferLength >= FIELD_OFFSET(FILE_NAME_INFORMATION, FileName) + DirContext->LongNameU.Length))
{
pInfo->FileNameLength = DirContext->LongNameU.Length;
*Written = FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName);
if (BufferLength > FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName))
*Written = FIELD_OFFSET(FILE_NAME_INFORMATION, FileName);
if (BufferLength > FIELD_OFFSET(FILE_NAME_INFORMATION, FileName))
{
BytesToCopy = min(DirContext->LongNameU.Length, BufferLength - FIELD_OFFSET(FILE_NAMES_INFORMATION, FileName));
BytesToCopy = min(DirContext->LongNameU.Length, BufferLength - FIELD_OFFSET(FILE_NAME_INFORMATION, FileName));
RtlCopyMemory(pInfo->FileName,
DirContext->LongNameU.Buffer,
BytesToCopy);