Bug fix: Big-Endian MIPS Volume Header boot file size was rounded up to full 2048. Thanks René Rebe.

This commit is contained in:
Thomas Schmitt 2020-07-07 12:31:52 +02:00
parent b0230b6ac8
commit f962d0da66

View File

@ -555,9 +555,12 @@ static int make_mips_volume_header(Ecma119Image *t, uint8_t *buf, int flag)
stream = iso_file_get_stream((IsoFile *) node); stream = iso_file_get_stream((IsoFile *) node);
file_size = iso_stream_get_size(stream); file_size = iso_stream_get_size(stream);
/* Shall i really round up to 2048 ? Steve says yes.*/ /* genisoimage rounds up to full multiples of 2048.
iso_msb(buf + (72 + 16 * idx) + 12, libisofs did this too until 2020, but the arcload mips boot loader
((file_size + 2047) / 2048 ) * 2048, 4); throws error if the rounded size is stored here.
So now the exact bytecount gets stored.
*/
iso_msb(buf + (72 + 16 * idx) + 12, file_size, 4);
} }