Linux ISO9660 File System

Jonathan F. Freeson (jfreeson@sun.science.wayne.edu)
Sun, 29 Jun 1997 23:29:02 -0400 (EDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-851401618-867640860=:26422
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.SV4.3.93.970629232205.26422E@gopher.chem.wayne.edu>

Hello:

I noticed that with some of the later 2.1.x kernels, I have been unable to
read some of my older "Shareware" CD-ROMs that I was able to read with
2.0.30. With 2.1, I frequently got the kernel message:

Directory entry extends past end of iso9660 block

Browsing through fs/isofs/namei.c, I found where this message occur (line
116).

/* Handle case where the directory entry spans two blocks.
Usually 1024 byte boundaries */
if (offset >= bufsize) {
printk("Directory entry extends past end of iso9660 block\n");
return 0;
}

However, in 2.0.30, a different piece of code is executed inside the if
statement.

After replacing the 2.1.43 code with the 2.0.30 portion (as well as all
references to the "cpnt" buffer), the CD's seem to work with 2.1.43 now.

Was there some particular reason why the support was removed for these
sort of directory entries? Will my fix (kludge) break anything else? I am
not familar with this filesystem, so I can't dive into the code and figure
it out.

I'm attaching a copy of the diff to what I have changed. It is against
the fs/isofs/namei.c in 2.1.43.

Sorry if this is a subject that has already been discussed.

Thanks

--- Jonathan F. Freeson
jfreeson@gopher.science.wayne.edu jff1@ss0.eng.wayne.edu
Homepage: http://www.science.wayne.edu/~jfreeson/index.html

---559023410-851401618-867640860=:26422
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="isofs.namei.c.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SV4.3.93.970629232100.26422C@gopher.chem.wayne.edu>
Content-Description:

LS0tIG5hbWVpLmMub2xkCVN1biBKdW4gMjkgMDA6MTQ6NTggMTk5Nw0KKysr
IG5hbWVpLmMJU3VuIEp1biAyOSAwMDoyMDozMyAxOTk3DQpAQCAtNjUsNiAr
NjUsNyBAQA0KIAl1bnNpZ25lZCBjaGFyIGJ1ZmJpdHMgPSBJU09GU19CVUZG
RVJfQklUUyhkaXIpOw0KIAl1bnNpZ25lZCBpbnQgYmxvY2ssIGksIGZfcG9z
LCBvZmZzZXQsIGlub2RlX251bWJlcjsNCiAJc3RydWN0IGJ1ZmZlcl9oZWFk
ICogYmg7DQorCXZvaWQgKiBjcG50ID0gTlVMTDsNCiAJdW5zaWduZWQgaW50
IG9sZF9vZmZzZXQ7DQogCXVuc2lnbmVkIGludCBiYWNrbGluazsNCiAJaW50
IGRsZW4sIHJyZmxhZywgbWF0Y2g7DQpAQCAtMTE2LDggKzExNywyMSBAQA0K
IAkJLyogSGFuZGxlIGNhc2Ugd2hlcmUgdGhlIGRpcmVjdG9yeSBlbnRyeSBz
cGFucyB0d28gYmxvY2tzLg0KIAkJICAgVXN1YWxseSAxMDI0IGJ5dGUgYm91
bmRhcmllcyAqLw0KIAkJaWYgKG9mZnNldCA+PSBidWZzaXplKSB7DQotCQkJ
cHJpbnRrKCJEaXJlY3RvcnkgZW50cnkgZXh0ZW5kcyBwYXN0IGVuZCBvZiBp
c285NjYwIGJsb2NrXG4iKTsNCi0JIAkJcmV0dXJuIDA7DQorCQkJdW5zaWdu
ZWQgaW50IGZyYWcxOw0KKwkJCWZyYWcxID0gYnVmc2l6ZSAtIG9sZF9vZmZz
ZXQ7DQorCQkJY3BudCA9IGttYWxsb2MoKigodW5zaWduZWQgY2hhciAqKSBk
ZSksR0ZQX0tFUk5FTCk7DQorCQkJaWYgKCFjcG50KSByZXR1cm4gMDsNCisJ
CQltZW1jcHkoY3BudCwgYmgtPmJfZGF0YSArIG9sZF9vZmZzZXQsIGZyYWcx
KTsNCisNCisJCQlkZSA9IChzdHJ1Y3QgaXNvX2RpcmVjdG9yeV9yZWNvcmQg
KikgY3BudDsNCisJCQlicmVsc2UoYmgpOw0KKwkJCW9mZnNldCA9IGZfcG9z
ICYgKGJ1ZnNpemUgLSAxKTsNCisJCQlibG9jayA9IGlzb2ZzX2JtYXAoZGly
LGZfcG9zPj5idWZiaXRzKTsNCisJCQlpZiAoIWJsb2NrIHx8ICEoYmggPSBi
cmVhZChkaXItPmlfZGV2LGJsb2NrLGJ1ZnNpemUpKSkgew0KKwkJCQlrZnJl
ZShjcG50KTsNCisJCQkJcmV0dXJuIDA7DQorCQkJfTsNCisJCQltZW1jcHko
KGNoYXIgKiljcG50K2ZyYWcxLCBiaC0+Yl9kYXRhLCBvZmZzZXQpOw0KIAkJ
fQ0KIAkJDQogCQkvKiBIYW5kbGUgdGhlICcuJyBjYXNlICovDQpAQCAtMTc2
LDYgKzE5MCwxMiBAQA0KIAkJCW1hdGNoID0gaXNvZnNfbWF0Y2gobmFtZWxl
bixuYW1lLGRwbnQsZGxlbik7DQogCQl9DQogDQorCQlpZiAoY3BudCkNCisJ
CXsNCisJCQlrZnJlZShjcG50KTsNCisJCQljcG50ID0gTlVMTDsNCisJCX0N
CisNCiAJCWlmKHJyZmxhZykga2ZyZWUoZHBudCk7DQogCQlpZiAobWF0Y2gp
IHsNCiAJCQlpZihpbm9kZV9udW1iZXIgPT0gLTEpIHsNCkBAIC0xOTcsNiAr
MjE3LDggQEANCiAJCX0NCiAJfQ0KICBvdXQ6DQorCWlmIChjcG50KQ0KKwkJ
a2ZyZWUoY3BudCk7DQogCWJyZWxzZShiaCk7DQogCXJldHVybiBOVUxMOw0K
IH0NCg==
---559023410-851401618-867640860=:26422--