diff options
Diffstat (limited to 'src/lib/formats/fsd_dsk.cpp')
-rw-r--r-- | src/lib/formats/fsd_dsk.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/formats/fsd_dsk.cpp b/src/lib/formats/fsd_dsk.cpp index e4909ba37f3..b386dc026c6 100644 --- a/src/lib/formats/fsd_dsk.cpp +++ b/src/lib/formats/fsd_dsk.cpp @@ -91,9 +91,11 @@ bool fsd_format::supports_save() const noexcept int fsd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[3]; - - size_t actual; - io.read_at(0, h, 3, actual); + auto const [err, actual] = read_at(io, 0, h, 3); + if (err || (3 != actual)) { + LOG_FORMATS("fsd: read error\n"); + return 0; + } if (memcmp(h, "FSD", 3) == 0) { return FIFID_SIGN; } @@ -111,9 +113,9 @@ bool fsd_format::load(util::random_read &io, uint32_t form_factor, const std::ve uint64_t size; if(io.length(size)) return false; - std::vector<uint8_t> img(size); - size_t actual; - io.read_at(0, &img[0], size, actual); + auto const [err, img, actual] = read_at(io, 0, size); + if(err || (actual != size)) + return false; uint64_t pos; std::string title; |