summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2008-02-21 11:59:17 +0000
committerFrank Gevaerts <frank@gevaerts.be>2008-02-21 11:59:17 +0000
commite744dd43538d457b5c45c9f649c9145aa2da6c75 (patch)
treefe06f4fde4c3b36468a8d5370a6d3cc5310eadab
parent7001936c99e9d53a1552fa33f296c15031408c26 (diff)
downloadrockbox-e744dd43538d457b5c45c9f649c9145aa2da6c75.tar.gz
rockbox-e744dd43538d457b5c45c9f649c9145aa2da6c75.zip
fix wrong LBA range check with sectorsizes larger than 512 bytes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16362 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/usbstack/usb_storage.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c
index 0904e17e75..4293b5e747 100644
--- a/firmware/usbstack/usb_storage.c
+++ b/firmware/usbstack/usb_storage.c
@@ -635,7 +635,7 @@ static void handle_scsi(struct command_block_wrapper* cbw)
635 635
636 logf("scsi read %d %d", current_cmd.sector, current_cmd.count); 636 logf("scsi read %d %d", current_cmd.sector, current_cmd.count);
637 637
638 if((current_cmd.sector + current_cmd.count) * block_size_mult > block_count) { 638 if((current_cmd.sector + current_cmd.count) > block_count) {
639 send_csw(SCSI_STATUS_CHECK_CONDITION); 639 send_csw(SCSI_STATUS_CHECK_CONDITION);
640 cur_sense_data.sense_key=SENSE_ILLEGAL_REQUEST; 640 cur_sense_data.sense_key=SENSE_ILLEGAL_REQUEST;
641 cur_sense_data.asc=ASC_LBA_OUT_OF_RANGE; 641 cur_sense_data.asc=ASC_LBA_OUT_OF_RANGE;
@@ -670,7 +670,7 @@ static void handle_scsi(struct command_block_wrapper* cbw)
670 (cbw->command_block[7] << 16 | 670 (cbw->command_block[7] << 16 |
671 cbw->command_block[8]); 671 cbw->command_block[8]);
672 /* expect data */ 672 /* expect data */
673 if((current_cmd.sector + current_cmd.count) * block_size_mult > block_count) { 673 if((current_cmd.sector + current_cmd.count) > block_count) {
674 send_csw(SCSI_STATUS_CHECK_CONDITION); 674 send_csw(SCSI_STATUS_CHECK_CONDITION);
675 cur_sense_data.sense_key=SENSE_ILLEGAL_REQUEST; 675 cur_sense_data.sense_key=SENSE_ILLEGAL_REQUEST;
676 cur_sense_data.asc=ASC_LBA_OUT_OF_RANGE; 676 cur_sense_data.asc=ASC_LBA_OUT_OF_RANGE;