summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Sergey Svishchev <shattered@users.noreply.github.com>2017-01-07 19:10:13 +0300
committer Sergey Svishchev <shattered@users.noreply.github.com>2017-01-10 00:31:24 +0300
commit1fda75a0e29f6f9416d268ed42e79c6f3d1d2afb (patch)
tree63e690969e6815a7b11901a2151d5dc0fda0c8dd
parent91435777749dd78c9c2c00fc930a7c0be63fb786 (diff)
ImageDisk loader: don't crash on tracks with no data
-rw-r--r--src/lib/formats/imd_dsk.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/formats/imd_dsk.cpp b/src/lib/formats/imd_dsk.cpp
index cce87fa64f2..8476da6ac38 100644
--- a/src/lib/formats/imd_dsk.cpp
+++ b/src/lib/formats/imd_dsk.cpp
@@ -492,10 +492,13 @@ bool imd_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
}
}
- if(fm)
- build_pc_track_fm(track, head, image, cell_count, sector_count, sects, gap_3);
- else
- build_pc_track_mfm(track, head, image, cell_count, sector_count, sects, gap_3);
+ if(sector_count) {
+ if(fm) {
+ build_pc_track_fm(track, head, image, cell_count, sector_count, sects, gap_3);
+ } else {
+ build_pc_track_mfm(track, head, image, cell_count, sector_count, sects, gap_3);
+ }
+ }
for(int i=0; i<sector_count; i++)
if(sects[i].data && (sects[i].data < &img[0] || sects[i].data >= (&img[0] + size)))