From 0a77b5c74dc94d0bca0519d02e4aa7163013f54d Mon Sep 17 00:00:00 2001 From: Robert Fisk Date: Mon, 2 Apr 2018 12:14:55 +1200 Subject: [PATCH] Don't overwrite array bounds when mass storage device reports > 2 LUNs --- .../ST/STM32_USB_Host_Library/Class/MSC/Src/usbh_msc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Downstream/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Src/usbh_msc.c b/Downstream/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Src/usbh_msc.c index 0b35b7b..af5b214 100644 --- a/Downstream/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Src/usbh_msc.c +++ b/Downstream/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Src/usbh_msc.c @@ -300,6 +300,10 @@ static USBH_StatusTypeDef USBH_MSC_ClassRequest(USBH_HandleTypeDef *phost) MSC_Handle->max_lun = (uint8_t )(MSC_Handle->max_lun) + 1; USBH_UsrLog ("Number of supported LUN: %lu", (int32_t)(MSC_Handle->max_lun)); + if (MSC_Handle->max_lun > MAX_SUPPORTED_LUN) + { + MSC_Handle->max_lun = MAX_SUPPORTED_LUN; + } for(i = 0; i < MSC_Handle->max_lun; i++) { MSC_Handle->unit[i].prev_ready_state = USBH_FAIL;