diff options
Diffstat (limited to 'firmware/usbstack/usb_storage.c')
| -rw-r--r-- | firmware/usbstack/usb_storage.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index c51b0fa..b898978 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c @@ -816,7 +816,7 @@ static void handle_scsi(struct command_block_wrapper* cbw) case SCSI_REPORT_LUNS: { logf("scsi report luns %d",lun); - int allocation_length=0; + unsigned int allocation_length=0; int i; unsigned int response_length = 8+8*storage_num_drives(); allocation_length|=(cbw->command_block[6]<<24); @@ -834,6 +834,7 @@ static void handle_scsi(struct command_block_wrapper* cbw) #endif tb.lun_data->luns[i][1]=0; } + length = MIN(length, allocation_length); send_command_result(tb.lun_data, MIN(response_length, length)); break; |