Arty's summary:

drivers/fs/cdfs/fsctl: Allocate wide chars.  CD title was being truncated
drivers/fs/vfat/fsctl: Tolerate a zero bytes-per-sector
Patches by Herve Poussineau

svn path=/trunk/; revision=8761
This commit is contained in:
Art Yerkes 2004-03-16 08:30:28 +00:00
parent 7d726b9519
commit c20093e554
2 changed files with 40 additions and 33 deletions

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: fsctl.c,v 1.18 2004/03/08 08:51:26 ekohl Exp $ /* $Id: fsctl.c,v 1.19 2004/03/16 08:30:28 arty Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -83,7 +83,7 @@ CdfsGetPVDData(PUCHAR Buffer,
*pw++ = (WCHAR)*pc++; *pw++ = (WCHAR)*pc++;
} }
*pw = 0; *pw = 0;
CdInfo->VolumeLabelLength = i; CdInfo->VolumeLabelLength = i * sizeof(WCHAR);
CdInfo->VolumeSpaceSize = Pvd->VolumeSpaceSizeL; CdInfo->VolumeSpaceSize = Pvd->VolumeSpaceSizeL;
CdInfo->RootStart = Pvd->RootDirRecord.ExtentLocationL; CdInfo->RootStart = Pvd->RootDirRecord.ExtentLocationL;

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: fsctl.c,v 1.27 2004/01/28 20:53:46 ekohl Exp $ /* $Id: fsctl.c,v 1.28 2004/03/16 08:30:28 arty Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -126,6 +126,8 @@ VfatHasFileSystem(PDEVICE_OBJECT DeviceToMount,
Offset.QuadPart = 0; Offset.QuadPart = 0;
Status = VfatReadDisk(DeviceToMount, &Offset, DiskGeometry.BytesPerSector, (PUCHAR) Boot, FALSE); Status = VfatReadDisk(DeviceToMount, &Offset, DiskGeometry.BytesPerSector, (PUCHAR) Boot, FALSE);
if (NT_SUCCESS(Status)) if (NT_SUCCESS(Status))
{
if (Boot->BytesPerSector != 0)
{ {
FatInfo.VolumeID = Boot->VolumeID; FatInfo.VolumeID = Boot->VolumeID;
FatInfo.FATStart = Boot->ReservedSectors; FatInfo.FATStart = Boot->ReservedSectors;
@ -163,6 +165,11 @@ VfatHasFileSystem(PDEVICE_OBJECT DeviceToMount,
*pFatInfo = FatInfo; *pFatInfo = FatInfo;
} }
} }
else
{
Status = STATUS_INSUFFICIENT_RESOURCES;
}
}
ExFreePool(Boot); ExFreePool(Boot);
return Status; return Status;
} }