Hi, something to laugh for Pete, and to moan for Linux users:
The handling of multiextent files with unaligned extent sizes is obviously broken in the Linux kernel. At least in versions 3.16 and 4.12. I changed in my test ISO image multi_extent_8k.iso the size field of the fifth directory record of the data file from 8192 to 7936. This leaves a gap of 256 bytes to the start of the sixth extent. Where libisofs and libcdio branch ts-multiextent skip only 256 bytes, the Linux kernel skips more and in the end adds 1792 zero-bytes to get to the correct file length. The difference begins at byte 38912 = 19 * 2048. So four extents are presented correctly, but the incomplete last block in the manipulated extent is ignored completely by Linux. This leads in the end to the presentation of 1792 = 2048 - 256 bytes which do not belong to the payload of the file. (I really would like to quit this second-class operating system if i only knew any first-class one.) Have a nice day :) Thomas
