From df2a1bfe07b9d7bd8847c07cbc23a31c01b1f145 Mon Sep 17 00:00:00 2001 From: TomW Date: Sat, 22 Aug 2015 19:00:38 +0100 Subject: [PATCH] Out of bounds sectors on .img disc images now cause sector not found errors. --- src/disc_img.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/disc_img.c b/src/disc_img.c index 5b10682..191fec1 100644 --- a/src/disc_img.c +++ b/src/disc_img.c @@ -127,7 +127,8 @@ void img_readsector(int drive, int sector, int track, int side, int rate) // pclog("imgS Read sector drive=%i side=%i track=%i sector=%i rate=%i\n",drive,side,track,sector, rate); if (!img[drive].f || (side && img[drive].sides == 1) || - (rate != img[drive].rate) || (track != disc_track[drive])) + (rate != img[drive].rate) || (track != disc_track[drive]) || + sector > img[drive].sectors) { // pclog("Sector not found rate %i,%i track %i,%i\n", rate, img[drive].rate, track, disc_track[drive]); img_notfound=500; @@ -149,7 +150,8 @@ void img_writesector(int drive, int sector, int track, int side, int rate) // printf("imgS Write sector %i %i %i %i\n",drive,side,track,sector); if (!img[drive].f || (side && img[drive].sides == 1) || - (rate != img[drive].rate) || (track != disc_track[drive])) + (rate != img[drive].rate) || (track != disc_track[drive]) || + sector > img[drive].sectors) { img_notfound = 500; return;