mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 13:26:17 +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
|
// UDFS Offsets
|
||||||
//
|
//
|
||||||
#define UDFS_VRS_START_SECTOR 16
|
#define UDFS_VRS_START_OFFSET 32768
|
||||||
#define UDFS_AVDP_SECTOR 256
|
#define UDFS_AVDP_SECTOR 256
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -24,12 +24,12 @@ FsRecIsUdfsVolume(IN PDEVICE_OBJECT DeviceObject,
|
||||||
LARGE_INTEGER Offset;
|
LARGE_INTEGER Offset;
|
||||||
ULONG State = 0;
|
ULONG State = 0;
|
||||||
|
|
||||||
Offset.QuadPart = UDFS_VRS_START_SECTOR;
|
Offset.QuadPart = UDFS_VRS_START_OFFSET;
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
if (!FsRecReadBlock(DeviceObject,
|
if (!FsRecReadBlock(DeviceObject,
|
||||||
&Offset,
|
&Offset,
|
||||||
512,
|
SectorSize,
|
||||||
SectorSize,
|
SectorSize,
|
||||||
(PVOID)&Buffer,
|
(PVOID)&Buffer,
|
||||||
NULL))
|
NULL))
|
||||||
|
@ -41,8 +41,7 @@ FsRecIsUdfsVolume(IN PDEVICE_OBJECT DeviceObject,
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
|
||||||
if ((Offset.QuadPart == UDFS_VRS_START_SECTOR) &&
|
if ((Buffer[1] == 'B') &&
|
||||||
(Buffer[1] == 'B') &&
|
|
||||||
(Buffer[2] == 'E') &&
|
(Buffer[2] == 'E') &&
|
||||||
(Buffer[3] == 'A') &&
|
(Buffer[3] == 'A') &&
|
||||||
(Buffer[4] == '0') &&
|
(Buffer[4] == '0') &&
|
||||||
|
@ -83,7 +82,7 @@ FsRecIsUdfsVolume(IN PDEVICE_OBJECT DeviceObject,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Offset.QuadPart++;
|
Offset.QuadPart += SectorSize;
|
||||||
if (Offset.QuadPart == UDFS_AVDP_SECTOR)
|
if (Offset.QuadPart == UDFS_AVDP_SECTOR)
|
||||||
{
|
{
|
||||||
ExFreePool(Buffer);
|
ExFreePool(Buffer);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue