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


Reply via email to