From 8f1d3d9a728af0dba7a062d219714a645b544747 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;