Konstanty / libmodplug

libmodplug GitHub repository
Other
136 stars 41 forks source link

S3M requires 6 bytes after last pattern before end of file #95

Open sfiera opened 1 year ago

sfiera commented 1 year ago

The S3M file loader requires patterns to end at least 6 bytes before the end of the file: https://github.com/Konstanty/libmodplug/blob/d1b97ed0020bc620a059d3675d1854b40bd2608d/src/load_s3m.cpp#L347

I have some S3M files that lack this padding. They seem to play fine in MilkyTracker, but libmodplug drops the final pattern due to the lack of padding. I cannot find any documentation for why it should be necessary to include.

Is it necessary? Can the - 6 not be simply removed?

Konstanty commented 1 year ago

Probably a check could be made to check that len is at least 6 (the size of a MODCOMMAND), in the lines preceding instead. Will look into it.