mirror of
https://github.com/reactos/reactos.git
synced 2025-06-04 17:00:31 +00:00
Juan Sánchez Jurado <juan.s.jurado@gmail.com>
- UDF recognizer fixed so it doesn't perform partial sector reads. When trying to detect filesystem for a floppy without 0xaa55 signature UDF recognizer is called and it performed wrong partial sectors read because of a confusion between sectors and offset in bytes. See issue #2287 for more details. svn path=/trunk/; revision=37355
This commit is contained in:
parent
49050f13b3
commit
a2d0db9460
2 changed files with 5 additions and 6 deletions
|
@ -23,7 +23,7 @@
|
|||
//
|
||||
// UDFS Offsets
|
||||
//
|
||||
#define UDFS_VRS_START_SECTOR 16
|
||||
#define UDFS_VRS_START_OFFSET 32768
|
||||
#define UDFS_AVDP_SECTOR 256
|
||||
|
||||
//
|
||||
|
|
|
@ -24,12 +24,12 @@ FsRecIsUdfsVolume(IN PDEVICE_OBJECT DeviceObject,
|
|||
LARGE_INTEGER Offset;
|
||||
ULONG State = 0;
|
||||
|
||||
Offset.QuadPart = UDFS_VRS_START_SECTOR;
|
||||
Offset.QuadPart = UDFS_VRS_START_OFFSET;
|
||||
while (TRUE)
|
||||
{
|
||||
if (!FsRecReadBlock(DeviceObject,
|
||||
&Offset,
|
||||
512,
|
||||
SectorSize,
|
||||
SectorSize,
|
||||
(PVOID)&Buffer,
|
||||
NULL))
|
||||
|
@ -41,8 +41,7 @@ FsRecIsUdfsVolume(IN PDEVICE_OBJECT DeviceObject,
|
|||
{
|
||||
case 0:
|
||||
|
||||
if ((Offset.QuadPart == UDFS_VRS_START_SECTOR) &&
|
||||
(Buffer[1] == 'B') &&
|
||||
if ((Buffer[1] == 'B') &&
|
||||
(Buffer[2] == 'E') &&
|
||||
(Buffer[3] == 'A') &&
|
||||
(Buffer[4] == '0') &&
|
||||
|
@ -83,7 +82,7 @@ FsRecIsUdfsVolume(IN PDEVICE_OBJECT DeviceObject,
|
|||
break;
|
||||
}
|
||||
|
||||
Offset.QuadPart++;
|
||||
Offset.QuadPart += SectorSize;
|
||||
if (Offset.QuadPart == UDFS_AVDP_SECTOR)
|
||||
{
|
||||
ExFreePool(Buffer);
|
||||
|
|
Loading…
Reference in a new issue