diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2008-02-21 11:59:17 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2008-02-21 11:59:17 +0000 |
commit | e744dd43538d457b5c45c9f649c9145aa2da6c75 (patch) | |
tree | fe06f4fde4c3b36468a8d5370a6d3cc5310eadab /firmware/usbstack | |
parent | 7001936c99e9d53a1552fa33f296c15031408c26 (diff) | |
download | rockbox-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
Diffstat (limited to 'firmware/usbstack')
-rw-r--r-- | firmware/usbstack/usb_storage.c | 4 |
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; |