summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author ajrhacker <ajrhacker@users.noreply.github.com>2019-03-19 18:08:40 -0400
committer GitHub <noreply@github.com>2019-03-19 18:08:40 -0400
commit9e52e9cede5b62df269c983c9b45d5b55ec8d204 (patch)
treeb9b8f0bd02479ced9902e1f36337c30ed4481451
parent92b3e61dd7e642273ee5f3da686fbd6ac8916794 (diff)
parent66a4629631b8796896a4dc3bd080399b8531ada0 (diff)
Merge pull request #4778 from AmatCoder/AmatCoder-dsk_dsk-1
dsk_dsk.cpp: Avoid segfault if double sided DSK image is loaded on si…
-rw-r--r--src/lib/formats/dsk_dsk.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/formats/dsk_dsk.cpp b/src/lib/formats/dsk_dsk.cpp
index 5b019fb53d1..c90579b68d0 100644
--- a/src/lib/formats/dsk_dsk.cpp
+++ b/src/lib/formats/dsk_dsk.cpp
@@ -362,6 +362,12 @@ bool dsk_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
skip = 2;
}
int tracks = header[0x30];
+
+ int img_tracks, img_heads;
+ image->get_maximal_geometry(img_tracks, img_heads);
+ if (tracks > img_tracks || heads > img_heads)
+ return false;
+
uint64_t track_offsets[84*2];
int cnt =0;
if (!extendformat) {