Re: lseek() on an iso9660 file

From: H. Peter Anvin (
Date: Mon Jan 07 2002 - 12:48:35 EST

Followup to: <>
By author: "Richard B. Johnson" <>
In newsgroup:
> Using Linux 2.4.1 I discovered a problem with lseek on CDROM files
> (iso9660). I just installed 2.4.17 and found the same problem.
> The problem:
> (1) A portion of the file, existing on a CDROM, is read and its the
> contents are written to an output file on writable media.
> (2) The current input file-position is obtained using
> pos = lseek(fd, 0, SEEK_CUR); The value returned is exactly
> the expected value.
> (3) The rest of the CDROM file is read and written to the output file.
> (4) The file-position of the CDROM file is then set back to the saved
> position using lseek(fd, pos, SEEK_SET); The value returned is
> exactly the expected value.
> (5) The CDROM file is then read and its contents are observed to be
> scrambled in some strange manner in which word-length groups of
> bytes from near the end of the file are interleaved with the
> correct bytes. Basically, the file ends up being about twice
> as long as the original, with every-other two-byte interval
> being filled with bytes from near the end of the file.

a) How long is the file?
b) What is the offset?
c) What particular iso9660 options (RockRidge, Joliet, zisofs...)
   does your disk use?
d) Mount options?

This seems to be a rather serious bug, so I'd like to get to the
bottom with it.


<> at work, <> in private!
"Unix gives you enough rope to shoot yourself in the foot."	<>
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Mon Jan 07 2002 - 21:00:35 EST