Date: Thu, 28 Jan 2010 18:30:15 GMT From: "Pedro F. Giffuni" <giffunip@tutopia.com> To: freebsd-fs@FreeBSD.org Subject: Re: kern/142924: Small cleanup for the inode struct in ext2fs (based on UFS) Message-ID: <201001281830.o0SIUFcA011870@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/142924; it has been noted by GNATS. From: "Pedro F. Giffuni" <giffunip@tutopia.com> To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org Cc: Subject: Re: kern/142924: Small cleanup for the inode struct in ext2fs (based on UFS) Date: Thu, 28 Jan 2010 10:22:25 -0800 (PST) --0-1299979072-1264702945=:12268 Content-Type: text/plain; charset=us-ascii Include two more simple patches from ufs_lookup.c: CVS 1.54: When compacting directories, ufs_direnter() always trusted DIRSIZ() to supply the number of bytes to be bcopy()'d to move an entry. If d_ino == 0 however, DIRSIZ() is not guaranteed to return a sensible length, so ufs_direnter could end up corrupting a directory during compaction. CVS 1.45: Extend the sanity checks in ufs_lookup to ensure that each directory entry fits within its DIRBLKSIZ block. _______ These were meant to fix issues found with dirhash on UFS but ext2fs still works here with those changes so I think it's good to have them, JIC we end up bringing over dirhash to ext2fs. --0-1299979072-1264702945=:12268 Content-Type: application/octet-stream; name=patch-ext2fs Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=patch-ext2fs ZGlmZiAtcnUgZXh0MmZzLmJzZC9leHQyX2xvb2t1cC5jIGV4dDJmcy9leHQy X2xvb2t1cC5jCi0tLSBleHQyZnMuYnNkL2V4dDJfbG9va3VwLmMJMjAxMC0w MS0xNyAxOTowMjozMC4wMDAwMDAwMDAgKzAwMDAKKysrIGV4dDJmcy9leHQy X2xvb2t1cC5jCTIwMTAtMDEtMjQgMTk6Mjc6NTIuMDAwMDAwMDAwICswMDAw CkBAIC0zNDcsNiArMzQ3LDcgQEAKIAkJc2xvdG5lZWRlZCA9IChzaXplb2Yo c3RydWN0IGRpcmVjdCkgLSBNQVhOQU1MRU4gKwogCQkJY25wLT5jbl9uYW1l bGVuICsgMykgJn4gMzsgKi8KIAl9CisJYm1hc2sgPSBWRlNUT0VYVDIodmRw LT52X21vdW50KS0+dW1fbW91bnRwLT5tbnRfc3RhdC5mX2lvc2l6ZSAtIDE7 CiAKIAkvKgogCSAqIElmIHRoZXJlIGlzIGNhY2hlZCBpbmZvcm1hdGlvbiBv biBhIHByZXZpb3VzIHNlYXJjaCBvZgpAQCAtMzU5LDkgKzM2MCw4IEBACiAJ ICogcHJvZmlsaW5nIHRpbWUgYW5kIGhlbmNlIGhhcyBiZWVuIHJlbW92ZWQg aW4gdGhlIGludGVyZXN0CiAJICogb2Ygc2ltcGxpY2l0eS4KIAkgKi8KLQli bWFzayA9IFZGU1RPRVhUMih2ZHAtPnZfbW91bnQpLT51bV9tb3VudHAtPm1u dF9zdGF0LmZfaW9zaXplIC0gMTsKIAlpZiAobmFtZWlvcCAhPSBMT09LVVAg fHwgaV9kaXJvZmYgPT0gMCB8fAotCSAgICBpX2Rpcm9mZiA+IGRwLT5pX3Np emUpIHsKKwkgICAgaV9kaXJvZmYgPj0gZHAtPmlfc2l6ZSkgewogCQllbnRy eW9mZnNldGluYmxvY2sgPSAwOwogCQlpX29mZnNldCA9IDA7CiAJCW51bWRp cnBhc3NlcyA9IDE7CkBAIC00MDgsOSArNDA4LDkgQEAKIAkJICogZGlyZWN0 b3J5LiBDb21wbGV0ZSBjaGVja3MgY2FuIGJlIHJ1biBieSBzZXR0aW5nCiAJ CSAqICJ2ZnMuZTJmcy5kaXJjaGsiIHRvIGJlIHRydWUuCiAJCSAqLwotCQll cCA9IChzdHJ1Y3QgZXh0MmZzX2RpcmVjdF8yICopCi0JCQkoKGNoYXIgKili cC0+Yl9kYXRhICsgZW50cnlvZmZzZXRpbmJsb2NrKTsKLQkJaWYgKGVwLT5l MmRfcmVjbGVuID09IDAgfHwKKwkJZXAgPSAoc3RydWN0IGV4dDJmc19kaXJl Y3RfMiAqKSgoY2hhciAqKWJwLT5iX2RhdGEgKyBlbnRyeW9mZnNldGluYmxv Y2spOworCQlpZiAoZXAtPmUyZF9yZWNsZW4gPT0gMCB8fCBlcC0+ZTJkX3Jl Y2xlbiA+CisJCSAgICBESVJCTEtTSVogLSAoZW50cnlvZmZzZXRpbmJsb2Nr ICYgKERJUkJMS1NJWiAtIDEpKSB8fAogCQkgICAgKGRpcmNoayAmJiBleHQy X2RpcmJhZGVudHJ5KHZkcCwgZXAsIGVudHJ5b2Zmc2V0aW5ibG9jaykpKSB7 CiAJCQlpbnQgaTsKIAkJCWV4dDJfZGlyYmFkKGRwLCBpX29mZnNldCwgIm1h bmdsZWQgZW50cnkiKTsKQEAgLTU1MCwxMCArNTUwLDEwIEBACiAJICogQ2hl Y2sgdGhhdCBkaXJlY3RvcnkgbGVuZ3RoIHByb3Blcmx5IHJlZmxlY3RzIHBy ZXNlbmNlCiAJICogb2YgdGhpcyBlbnRyeS4KIAkgKi8KLQlpZiAoZW50cnlv ZmZzZXRpbmJsb2NrICsgRVhUMl9ESVJfUkVDX0xFTihlcC0+ZTJkX25hbWxl bikKKwlpZiAoZHAtPmlfb2Zmc2V0ICsgRVhUMl9ESVJfUkVDX0xFTihlcC0+ ZTJkX25hbWxlbikKIAkJPiBkcC0+aV9zaXplKSB7CiAJCWV4dDJfZGlyYmFk KGRwLCBpX29mZnNldCwgImlfc2l6ZSB0b28gc21hbGwiKTsKLQkJZHAtPmlf c2l6ZSA9IGVudHJ5b2Zmc2V0aW5ibG9jaytFWFQyX0RJUl9SRUNfTEVOKGVw LT5lMmRfbmFtbGVuKTsKKwkJZHAtPmlfc2l6ZSA9IGRwLT5pX29mZnNldCtF WFQyX0RJUl9SRUNfTEVOKGVwLT5lMmRfbmFtbGVuKTsKIAkJZHAtPmlfZmxh ZyB8PSBJTl9DSEFOR0UgfCBJTl9VUERBVEU7CiAJfQogCWJyZWxzZShicCk7 CkBAIC04NTUsMTcgKzg1NSwzMCBAQAogCSAqIHNwYWNlLgogCSAqLwogCWVw ID0gKHN0cnVjdCBleHQyZnNfZGlyZWN0XzIgKilkaXJidWY7Ci0JZHNpemUg PSBFWFQyX0RJUl9SRUNfTEVOKGVwLT5lMmRfbmFtbGVuKTsKKwlkc2l6ZSA9 IGVwLT5lMmRfaW5vID8gRVhUMl9ESVJfUkVDX0xFTihlcC0+ZTJkX25hbWxl bikgOiAwOwogCXNwYWNlZnJlZSA9IGVwLT5lMmRfcmVjbGVuIC0gZHNpemU7 CiAJZm9yIChsb2MgPSBlcC0+ZTJkX3JlY2xlbjsgbG9jIDwgZHAtPmlfY291 bnQ7ICkgewogCQluZXAgPSAoc3RydWN0IGV4dDJmc19kaXJlY3RfMiAqKShk aXJidWYgKyBsb2MpOwotCQlpZiAoZXAtPmUyZF9pbm8pIHsKLQkJCS8qIHRy aW0gdGhlIGV4aXN0aW5nIHNsb3QgKi8KLQkJCWVwLT5lMmRfcmVjbGVuID0g ZHNpemU7Ci0JCQllcCA9IChzdHJ1Y3QgZXh0MmZzX2RpcmVjdF8yICopKChj aGFyICopZXAgKyBkc2l6ZSk7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBvdmVyd3Jp dGU7IG5vdGhpbmcgdGhlcmU7IGhlYWRlciBpcyBvdXJzICovCi0JCQlzcGFj ZWZyZWUgKz0gZHNpemU7CisKKwkJLyogdHJpbSB0aGUgZXhpc3Rpbmcgc2xv dCAoTkI6IGRzaXplIG1heSBiZSB6ZXJvKS4gKi8KKwkJZXAtPmUyZF9yZWNs ZW4gPSBkc2l6ZTsKKwkJZXAgPSAoc3RydWN0IGV4dDJmc19kaXJlY3RfMiAq KSgoY2hhciAqKWVwICsgZHNpemUpOworCisJCS8qIFJlYWQgbmVwLT5lMmRf cmVjbGVuIG5vdyBhcyB0aGUgYmNvcHkoKSBtYXkgY2xvYmJlciBpdC4gKi8K KwkJbG9jICs9IG5lcC0+ZTJkX3JlY2xlbjsKKwkJaWYgKG5lcC0+ZTJkX2lu byA9PSAwKSB7CisJCQkvKgorCQkJICogQSBtaWQtYmxvY2sgdW51c2VkIGVu dHJ5LiBTdWNoIGVudHJpZXMgYXJlCisJCQkgKiBuZXZlciBjcmVhdGVkIGJ5 IHRoZSBrZXJuZWwsIGJ1dCBmc2NrCisJCQkgKiBjYW4gY3JlYXRlIHRoZW0g KGFuZCBub3QgZml4IHRoZW0pLgorCQkJICoKKwkJCSAqIEFkZCB1cCB0aGUg ZnJlZSBzcGFjZSwgYW5kIGluaXRpYWxpc2UgdGhlCisJCQkgKiByZWxvY2F0 ZWQgZW50cnkgc2luY2Ugd2UgZG9uJ3QgYmNvcHkgaXQuCisJCQkgKi8KKwkJ CXNwYWNlZnJlZSArPSBuZXAtPmUyZF9yZWNsZW47CisJCQllcC0+ZTJkX2lu byA9IDA7CisJCQlkc2l6ZSA9IDA7CisJCQljb250aW51ZTsKIAkJfQogCQlk c2l6ZSA9IEVYVDJfRElSX1JFQ19MRU4obmVwLT5lMmRfbmFtbGVuKTsKIAkJ c3BhY2VmcmVlICs9IG5lcC0+ZTJkX3JlY2xlbiAtIGRzaXplOwpkaWZmIC1y dSBleHQyZnMuYnNkL2V4dDJfdmZzb3BzLmMgZXh0MmZzL2V4dDJfdmZzb3Bz LmMKLS0tIGV4dDJmcy5ic2QvZXh0Ml92ZnNvcHMuYwkyMDEwLTAxLTE3IDE5 OjAyOjU2LjAwMDAwMDAwMCArMDAwMAorKysgZXh0MmZzL2V4dDJfdmZzb3Bz LmMJMjAxMC0wMS0xOCAxNTo0MzoyMC4wMDAwMDAwMDAgKzAwMDAKQEAgLTk0 NSw5ICs5NDUsOCBAQAogCX0KIAogCS8qCi0JICogRmluaXNoIGlub2RlIGlu aXRpYWxpemF0aW9uIG5vdyB0aGF0IGFsaWFzaW5nIGhhcyBiZWVuIHJlc29s dmVkLgorCSAqIEZpbmlzaCBpbm9kZSBpbml0aWFsaXphdGlvbi4KIAkgKi8K LQlpcC0+aV9kZXZ2cCA9IHVtcC0+dW1fZGV2dnA7CiAKIAkvKgogCSAqIFNl dCB1cCBhIGdlbmVyYXRpb24gbnVtYmVyIGZvciB0aGlzIGlub2RlIGlmIGl0 IGRvZXMgbm90CmRpZmYgLXJ1IGV4dDJmcy5ic2QvaW5vZGUuaCBleHQyZnMv aW5vZGUuaAotLS0gZXh0MmZzLmJzZC9pbm9kZS5oCTIwMTAtMDEtMTcgMTk6 MDM6MjEuMDAwMDAwMDAwICswMDAwCisrKyBleHQyZnMvaW5vZGUuaAkyMDEw LTAxLTE4IDE1OjQzOjIwLjAwMDAwMDAwMCArMDAwMApAQCAtNjIsNyArNjIs NiBAQAogICovCiBzdHJ1Y3QgaW5vZGUgewogCXN0cnVjdAl2bm9kZSAgKmlf dm5vZGU7LyogVm5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5vZGUuICov Ci0Jc3RydWN0CXZub2RlICAqaV9kZXZ2cDsvKiBWbm9kZSBmb3IgYmxvY2sg SS9PLiAqLwogCXN0cnVjdAlleHQybW91bnQgKmlfdW1wOwogCXVfaW50MzJf dCBpX2ZsYWc7CS8qIGZsYWdzLCBzZWUgYmVsb3cgKi8KIAlpbm9fdAkgIGlf bnVtYmVyOwkvKiBUaGUgaWRlbnRpdHkgb2YgdGhlIGlub2RlLiAqLwpAQCAt MTQzLDYgKzE0Miw5IEBACiAjZGVmaW5lCUlOX1NQQUNFQ09VTlRFRAkweDAw ODAJCS8qIEJsb2NrcyB0byBiZSBmcmVlZCBpbiBmcmVlIGNvdW50LiAqLwog I2RlZmluZSBJTl9MQVpZQUNDRVNTICAgMHgwMTAwCQkvKiBQcm9jZXNzIElO X0FDQ0VTUyBhZnRlciB0aGUKIAkJCQkJICAgIHN1c3BlbnNpb24gZmluaXNo ZWQgKi8KKworI2RlZmluZSBpX2RldnZwIGlfdW1wLT51bV9kZXZ2cAorCiAj aWZkZWYgX0tFUk5FTAogLyoKICAqIFN0cnVjdHVyZSB1c2VkIHRvIHBhc3Mg YXJvdW5kIGxvZ2ljYWwgYmxvY2sgcGF0aHMgZ2VuZXJhdGVkIGJ5Cg== --0-1299979072-1264702945=:12268--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001281830.o0SIUFcA011870>