Не подтверждена Коммит 3d9b9198 создал по автору Adam Słaboń's avatar Adam Słaboń Зафиксировано автором GitHub
Просмотр файлов

[MOUNTMGR] Few fixes and improvements (#7896)

- `MountMgrVolumeMountPointChanged()`: Set status code in all failure
  paths and correct the check for remote or removable media.
- `DeleteRemoteDatabaseEntry()`: Do not allow the database with size of zero.
- `QueryVolumeName()`: Use reparse point file reference when no file name is supplied.
владелец 26e0a547
......@@ -255,8 +255,8 @@ DeleteRemoteDatabaseEntry(IN HANDLE Database,
return STATUS_INVALID_PARAMETER;
}
/* Validate parameters: ensure we won't get negative size */
if (Entry->EntrySize + StartingOffset > DatabaseSize)
/* Validate parameters: ensure we won't get zero or negative size */
if (Entry->EntrySize + StartingOffset >= DatabaseSize)
{
/* If we get invalid parameters, truncate the whole database
* starting the wrong entry. We can't rely on the rest
......@@ -1303,12 +1303,14 @@ QueryVolumeName(IN HANDLE RootDirectory,
PFILE_NAME_INFORMATION FileNameInfo;
PREPARSE_DATA_BUFFER ReparseDataBuffer;
UNREFERENCED_PARAMETER(ReparsePointInformation);
if (!FileName)
{
UNICODE_STRING Reference;
Reference.Length = Reference.MaximumLength = sizeof(ReparsePointInformation->FileReference);
Reference.Buffer = (PWSTR)&(ReparsePointInformation->FileReference);
InitializeObjectAttributes(&ObjectAttributes,
NULL,
&Reference,
OBJ_KERNEL_HANDLE,
RootDirectory,
NULL);
......
......@@ -2062,13 +2062,17 @@ MountMgrVolumeMountPointChanged(IN PDEVICE_EXTENSION DeviceExtension,
goto Cleanup;
}
/* Mount points can be stored only on storage disks */
if (FsDeviceInfo.DeviceType != FILE_DEVICE_DISK && FsDeviceInfo.DeviceType != FILE_DEVICE_VIRTUAL_DISK)
{
Status = STATUS_INVALID_PARAMETER;
goto Cleanup;
}
if (FsDeviceInfo.Characteristics != (FILE_REMOTE_DEVICE | FILE_REMOVABLE_MEDIA))
/* And they can be on local fixed disks only */
if (FsDeviceInfo.Characteristics & (FILE_REMOTE_DEVICE | FILE_REMOVABLE_MEDIA))
{
Status = STATUS_INVALID_PARAMETER;
goto Cleanup;
}
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать