summaryrefslogtreecommitdiff
path: root/examples/device/cdc_msc/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-02-07 16:37:51 +0700
committerhathach <[email protected]>2025-02-07 16:37:51 +0700
commitcd0ca4832d0247dea0457e791ffc071ceaf43bce (patch)
treed7909fa3eb7fc1b33d7f7299c674e47cb81f1f19 /examples/device/cdc_msc/src
parent5c4e4b1bc273b771411660e1b6fbe81c2e8fd90b (diff)
parent2a3025eaa5ed59e49218eb5460b8831a76945cf2 (diff)
Merge branch 'refs/heads/master' into fork/jay94ks/styluspen
Diffstat (limited to 'examples/device/cdc_msc/src')
-rw-r--r--examples/device/cdc_msc/src/msc_disk.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/examples/device/cdc_msc/src/msc_disk.c b/examples/device/cdc_msc/src/msc_disk.c
index d2f8628f1..d325d77fa 100644
--- a/examples/device/cdc_msc/src/msc_disk.c
+++ b/examples/device/cdc_msc/src/msc_disk.c
@@ -190,7 +190,14 @@ int32_t tud_msc_read10_cb(uint8_t lun, uint32_t lba, uint32_t offset, void* buff
(void) lun;
// out of ramdisk
- if ( lba >= DISK_BLOCK_NUM ) return -1;
+ if ( lba >= DISK_BLOCK_NUM ) {
+ return -1;
+ }
+
+ // Check for overflow of offset + bufsize
+ if ( offset + bufsize > DISK_BLOCK_SIZE ) {
+ return -1;
+ }
uint8_t const* addr = msc_disk[lba] + offset;
memcpy(buffer, addr, bufsize);