diff options
author | 2022-03-23 14:19:23 +0100 | |
---|---|---|
committer | 2022-03-23 14:19:44 +0100 | |
commit | 01b611a51ffd4f7422e84ee764d1c05581cd41e1 (patch) | |
tree | 2119cbf8b284f4b9464d98d0c45069e2e391bef5 | |
parent | 4b3dcdbcc15e8792b34b1108bbf44a226479f807 (diff) |
floppy formats: correct sector extraction in wd/upd when extracted sector is smaller than expected
-rw-r--r-- | src/lib/formats/upd765_dsk.cpp | 2 | ||||
-rw-r--r-- | src/lib/formats/wd177x_dsk.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/formats/upd765_dsk.cpp b/src/lib/formats/upd765_dsk.cpp index 7c82e9b769a..630bd3da172 100644 --- a/src/lib/formats/upd765_dsk.cpp +++ b/src/lib/formats/upd765_dsk.cpp @@ -436,7 +436,7 @@ void upd765_format::extract_sectors(floppy_image *image, const format &f, desc_s else if(sectors[ds.sector_id].size() < ds.size) { memcpy((void *)ds.data, sectors[ds.sector_id].data(), sectors[ds.sector_id].size()); - memset((uint8_t *)ds.data + sectors[ds.sector_id].size(), 0, sectors[ds.sector_id].size() - ds.size); + memset((uint8_t *)ds.data + sectors[ds.sector_id].size(), 0, ds.size - sectors[ds.sector_id].size()); } else memcpy((void *)ds.data, sectors[ds.sector_id].data(), ds.size); diff --git a/src/lib/formats/wd177x_dsk.cpp b/src/lib/formats/wd177x_dsk.cpp index 5675e3bd5aa..eab69bb5a15 100644 --- a/src/lib/formats/wd177x_dsk.cpp +++ b/src/lib/formats/wd177x_dsk.cpp @@ -527,7 +527,7 @@ void wd177x_format::extract_sectors(floppy_image *image, const format &f, desc_s else if(sectors[ds.sector_id].size() < ds.size) { memcpy((void *)ds.data, sectors[ds.sector_id].data(), sectors[ds.sector_id].size()); - memset((uint8_t *)ds.data + sectors[ds.sector_id].size(), 0, sectors[ds.sector_id].size() - ds.size); + memset((uint8_t *)ds.data + sectors[ds.sector_id].size(), 0, ds.size - sectors[ds.sector_id].size()); } else memcpy((void *)ds.data, sectors[ds.sector_id].data(), ds.size); |