ISO 9660 problem -- used to work fine, now it doesn't

From: Reed Meyer (rdm@astro.yale.edu)
Date: Mon Jul 17 2000 - 16:58:50 EST


Hello all,
     Sometime in the 2.1/2.2 series (I don't know exactly, but it was
between 2.0.36 and 2.2.12 for sure), a portion of the ISO 9660 code was
broken -- something that was working just fine in the older kernel. In
fs/isofs/dir.c, there's a function "do_isofs_readdir()" that handles, as
you can probably guess, the reading of a CDROM directory. In the newer
code, if it encounters a "buggy cdrom image" (i.e., an image which does
not conform to the rule "All directory entries should terminate with a
null size or end exactly at the end of the sector", to quote the code),
it simply prints an error message and stops processing the directory.
The OLDER code, however, had a chunk which dealt with such "buggy"
directory entries; this chunk is absent from the newer code.
     I'm not sure what the motivation was to remove this chunk; perhaps it
was purely a desire to streamline the kernel. But the fact is that we've
encountered at least one CDROM here which the newer code can't read
properly. It's the Hubble Space Telescope Guide Star Catalog, Version
1.1. It's quite possible that this CD (which is fairly old) was burned
before the ISO 9660 filesystem was completely standardized, and the newer
code is justified in not trying to handle CDROMS which don't conform
precisely to ISO 9660 specifications. But why not continue to support
such CDROMS, especially since the code already exists? I doubt very much
that the HST Guide Star Catalog CDROM is the only one out there which
gives this problem.
      I believe it would be pretty straightforward to patch the newer
kernel to re-introduce support for such "buggy" CDROMs -- simply copy the
chunk dealing with the "if (next_offset > bufsize)" test from the 2.0.36
kernel to the newer one, replacing the "print an error message and abort"
block in the latter. Would it be more difficult than this? If not, can
this be done, and introduced into the new kernels, since as I said above,
I doubt there is just one CDROM out there that would benefit?

Thanks. Please CC a reply to rdm@astro.yale.edu.
---Reed Meyer

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jul 23 2000 - 21:00:10 EST