summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib
diff options
context:
space:
mode:
author Dirk Best <mail@dirk-best.de>2017-10-25 13:13:54 +0200
committer Dirk Best <mail@dirk-best.de>2017-10-25 13:13:54 +0200
commitb4e8282023cb11659d1b785d3c010549c0ebfae5 (patch)
treee0f300cd955d72f554646d97e3559a90e54049fa /src/lib
parentad13bddaf637c12771f6068c13e320e651e30e58 (diff)
dsk_dsk: Don't segfault on empty tracks (fixes einstein 4game)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/formats/dsk_dsk.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/formats/dsk_dsk.cpp b/src/lib/formats/dsk_dsk.cpp
index 08f76c90127..493c503c223 100644
--- a/src/lib/formats/dsk_dsk.cpp
+++ b/src/lib/formats/dsk_dsk.cpp
@@ -398,6 +398,11 @@ bool dsk_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
continue;
track_header tr;
io_generic_read(io, &tr,track_offsets[(track<<1)+side],sizeof(tr));
+
+ // skip if there are no sectors in this track
+ if (tr.number_of_sector == 0)
+ continue;
+
desc_pc_sector sects[256];
uint8_t sect_data[65536];
int sdatapos = 0;