From: Hao Wu Date: Tue, 22 Dec 2015 13:54:47 +0000 (+0000) Subject: MdeModulePkg ScsiDiskDxe: Modify WriteBlocks(Ex)() to follow UEFI spec X-Git-Tag: edk2-stable201903~8186 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=40b0f96fd2af67575f60299fba157cc35839eb7d MdeModulePkg ScsiDiskDxe: Modify WriteBlocks(Ex)() to follow UEFI spec The functions ScsiDiskWriteBlocks(Ex) in ScsiDiskDxe/ScsiDisk.c do not check whether the device is allow to be written originally. This commit will add read-only check to follow the UEFI spec. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu Reviewed-by: Feng Tian git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19445 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c index a85cc94ae6..3e19fad064 100644 --- a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c +++ b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c @@ -692,6 +692,11 @@ ScsiDiskWriteBlocks ( goto Done; } + if (Media->ReadOnly) { + Status = EFI_WRITE_PROTECTED; + goto Done; + } + if (BufferSize == 0) { Status = EFI_SUCCESS; goto Done; @@ -1048,6 +1053,11 @@ ScsiDiskWriteBlocksEx ( goto Done; } + if (Media->ReadOnly) { + Status = EFI_WRITE_PROTECTED; + goto Done; + } + if (BufferSize == 0) { if ((Token != NULL) && (Token->Event != NULL)) { Token->TransactionStatus = EFI_SUCCESS;