summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/fsd_dsk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/fsd_dsk.cpp')
-rw-r--r--src/lib/formats/fsd_dsk.cpp14
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;