Merge pull request #1113 from szymonh/master

Assure msc device block size is not zero
This commit is contained in:
Ha Thach 2021-10-01 00:08:32 +07:00 committed by GitHub
commit e7ef322268
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* /*
* The MIT License (MIT) * The MIT License (MIT)
* *
* Copyright (c) 2019 Ha Thach (tinyusb.org) * Copyright (c) 2019 Ha Thach (tinyusb.org)
@ -182,11 +182,16 @@ uint8_t rdwr10_validate_cmd(msc_cbw_t const* cbw)
TU_LOG(MSC_DEBUG, " SCSI case 8 (Hi <> Do)\r\n"); TU_LOG(MSC_DEBUG, " SCSI case 8 (Hi <> Do)\r\n");
status = MSC_CSW_STATUS_PHASE_ERROR; status = MSC_CSW_STATUS_PHASE_ERROR;
} }
else if ( !block_count ) else if ( 0 == block_count )
{ {
TU_LOG(MSC_DEBUG, " SCSI case 4 Hi > Dn\r\n"); TU_LOG(MSC_DEBUG, " SCSI case 4 Hi > Dn (READ10) or case 9 Ho > Dn (WRITE10) \r\n");
status = MSC_CSW_STATUS_FAILED; status = MSC_CSW_STATUS_FAILED;
} }
else if ( cbw->total_bytes / block_count == 0 )
{
TU_LOG(MSC_DEBUG, " Computed block size = 0. SCSI case 7 Hi < Di (READ10) or case 13 Ho < Do (WRIT10)\r\n");
status = MSC_CSW_STATUS_PHASE_ERROR;
}
} }
return status; return status;