diff --git a/reactos/drivers/storage/cdrom/cdrom.c b/reactos/drivers/storage/cdrom/cdrom.c index 8b680401b0a..9cbd459cf63 100644 --- a/reactos/drivers/storage/cdrom/cdrom.c +++ b/reactos/drivers/storage/cdrom/cdrom.c @@ -1409,6 +1409,7 @@ CdromClassStartIo (IN PDEVICE_OBJECT DeviceObject, MmBuildMdlForNonPagedPool (SubIrp->MdlAddress); Srb->DataBuffer = DataBuffer; + RtlZeroMemory(DataBuffer, sizeof(READ_CAPACITY_DATA)); IoCallDriver (DeviceExtension->PortDeviceObject, SubIrp); return; diff --git a/reactos/drivers/storage/class2/class2.c b/reactos/drivers/storage/class2/class2.c index 368986837a5..abd33b4c33e 100644 --- a/reactos/drivers/storage/class2/class2.c +++ b/reactos/drivers/storage/class2/class2.c @@ -1772,6 +1772,7 @@ ScsiClassReadDriveCapacity(IN PDEVICE_OBJECT DeviceObject) } RtlZeroMemory(&Srb, sizeof(SCSI_REQUEST_BLOCK)); + RtlZeroMemory(CapacityBuffer, sizeof(READ_CAPACITY_DATA)); Srb.CdbLength = 10; Srb.TimeOutValue = DeviceExtension->TimeOutValue; @@ -1787,6 +1788,7 @@ TryAgain: FALSE); DPRINT("Status: %lx\n", Status); DPRINT("Srb: %p\n", &Srb); + if (CapacityBuffer->BytesPerBlock == 0) Status = STATUS_NOT_SUPPORTED; if (NT_SUCCESS(Status)) { SectorSize = (((PUCHAR)&CapacityBuffer->BytesPerBlock)[0] << 24) |