diff --git a/subsys/usb/class/mass_storage.c b/subsys/usb/class/mass_storage.c index a6103c1c916a3..26ad0fc75d5b6 100644 --- a/subsys/usb/class/mass_storage.c +++ b/subsys/usb/class/mass_storage.c @@ -433,6 +433,13 @@ static bool infoTransfer(void) (cbw.CB[5] << 0); LOG_DBG("LBA (block) : 0x%x ", n); + if ((n * BLOCK_SIZE) >= memory_size) { + LOG_ERR("LBA out of range"); + csw.Status = CSW_FAILED; + sendCSW(); + return false; + } + addr = n * BLOCK_SIZE; /* Number of Blocks to transfer */