From 61624c601487e9f0a478e11eb5e3031f06549afb Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Tue, 8 Jan 2019 22:54:39 +0100 Subject: [PATCH] More safety for SD-reads and writes, watch out for file length ...if the core ignores the size. --- user_io.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/user_io.c b/user_io.c index 19572d5..0fcad55 100644 --- a/user_io.c +++ b/user_io.c @@ -1108,8 +1108,10 @@ void user_io_poll() { #if 1 if(sd_image[drive_index].file.size) { - IDXSeek(&sd_image[drive_index], lba); - IDXWrite(&sd_image[drive_index], wr_buf); + if(((sd_image[drive_index].file.size-1) >> 9) >= lba) { + IDXSeek(&sd_image[drive_index], lba); + IDXWrite(&sd_image[drive_index], wr_buf); + } } else MMC_Write(lba, wr_buf); #else @@ -1134,8 +1136,10 @@ void user_io_poll() { if(buffer_lba != lba) { DISKLED_ON; if(sd_image[drive_index].file.size) { - IDXSeek(&sd_image[drive_index], lba); - IDXRead(&sd_image[drive_index], buffer); + if(((sd_image[drive_index].file.size-1) >> 9) >= lba) { + IDXSeek(&sd_image[drive_index], lba); + IDXRead(&sd_image[drive_index], buffer); + } } else { // sector read // read sector from sd card if it is not already present in