summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-08-07 06:36:56 +0000
committerMike Frysinger <vapier@gentoo.org>2005-08-07 06:36:56 +0000
commit1cce7a910d40fc2fae600361601edbad452b980e (patch)
treeea8c0abb5f5ed27729705c12f7765ceac699e53f /sys-fs/e2fsprogs
parentadd some directory checks (diff)
downloadhistorical-1cce7a910d40fc2fae600361601edbad452b980e.tar.gz
historical-1cce7a910d40fc2fae600361601edbad452b980e.tar.bz2
historical-1cce7a910d40fc2fae600361601edbad452b980e.zip
Add patch from upstream to fix segfault #91751 by Christopher Cowart / Ben Schwartz.
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'sys-fs/e2fsprogs')
-rw-r--r--sys-fs/e2fsprogs/ChangeLog7
-rw-r--r--sys-fs/e2fsprogs/Manifest33
-rw-r--r--sys-fs/e2fsprogs/e2fsprogs-1.38.ebuild6
-rw-r--r--sys-fs/e2fsprogs/files/e2fsprogs-1.38-disconnected-inodes.patch79
4 files changed, 111 insertions, 14 deletions
diff --git a/sys-fs/e2fsprogs/ChangeLog b/sys-fs/e2fsprogs/ChangeLog
index ab335cb97167..2f79ebdb4ada 100644
--- a/sys-fs/e2fsprogs/ChangeLog
+++ b/sys-fs/e2fsprogs/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for sys-fs/e2fsprogs
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/ChangeLog,v 1.70 2005/07/25 19:49:13 killerfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/ChangeLog,v 1.71 2005/08/07 06:36:56 vapier Exp $
+
+ 07 Aug 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/e2fsprogs-1.38-disconnected-inodes.patch, e2fsprogs-1.38.ebuild:
+ Add patch from upstream to fix segfault #91751 by Christopher Cowart / Ben
+ Schwartz.
25 Jul 2005; Rene Nussbaumer <killerfox@gentoo.org> e2fsprogs-1.38.ebuild:
Stable on hppa.
diff --git a/sys-fs/e2fsprogs/Manifest b/sys-fs/e2fsprogs/Manifest
index 689c493ac31b..2a33f30f896c 100644
--- a/sys-fs/e2fsprogs/Manifest
+++ b/sys-fs/e2fsprogs/Manifest
@@ -1,19 +1,30 @@
-MD5 780435e0ec9847041326a594270f685f ChangeLog 12331
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+MD5 ebc8234a7bc9fc34fffbba6ecc5c3487 e2fsprogs-1.37-r1.ebuild 3446
MD5 37cb0ccd95b17f3838109fb5c07bdd5c e2fsprogs-1.35-r1.ebuild 3377
-MD5 3175f69bbef8d8d5b28da5e04acf22e6 e2fsprogs-1.36-r2.ebuild 2626
+MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
MD5 54432110b1e54ba458f618f72d355216 e2fsprogs-1.36.ebuild 3400
-MD5 ebc8234a7bc9fc34fffbba6ecc5c3487 e2fsprogs-1.37-r1.ebuild 3446
+MD5 0cd5e4948291f1a2613b880192a12541 e2fsprogs-1.38.ebuild 3316
+MD5 3175f69bbef8d8d5b28da5e04acf22e6 e2fsprogs-1.36-r2.ebuild 2626
+MD5 d3944e2cf57c3a7912600635a3edc7b9 ChangeLog 12542
MD5 92cb7d0ad3274ae7ecae662e1cd428c3 e2fsprogs-1.37.ebuild 3087
-MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
-MD5 b20db7fb63cb136575c43d9519f7d6a1 e2fsprogs-1.38.ebuild 3208
-MD5 3d9735f2397680a4978124f6805219ae files/digest-e2fsprogs-1.35-r1 67
-MD5 e86bf4d241506baff5f647cbd30ae7a0 files/digest-e2fsprogs-1.36 67
+MD5 1a896f2697b055d4b8b4139c3482ac9e files/e2fsprogs-1.32-mk_cmds-cosmetic.patch 316
MD5 e86bf4d241506baff5f647cbd30ae7a0 files/digest-e2fsprogs-1.36-r2 67
+MD5 e49935e8abf94d6e906bad2d068d43c3 files/e2fsprogs-1.37-e2p-test.patch 380
MD5 65689a8be4c1b58f8e64f22165313292 files/digest-e2fsprogs-1.37 67
+MD5 3d9735f2397680a4978124f6805219ae files/digest-e2fsprogs-1.35-r1 67
+MD5 4a7d54ccac4002d10462c40660712a72 files/e2fsprogs-1.36-sed-locale.patch 2142
+MD5 0911aedd4968aa4053139791a961e2a2 files/digest-e2fsprogs-1.38 67
MD5 65689a8be4c1b58f8e64f22165313292 files/digest-e2fsprogs-1.37-r1 67
-MD5 1a896f2697b055d4b8b4139c3482ac9e files/e2fsprogs-1.32-mk_cmds-cosmetic.patch 316
+MD5 e85d057f99af6c980acf9a8697da9dd7 files/e2fsprogs-1.38-disconnected-inodes.patch 2881
MD5 a47cce15da0a4e01bb3cec306d9d7dbe files/e2fsprogs-1.36-makefile.patch 2910
-MD5 4a7d54ccac4002d10462c40660712a72 files/e2fsprogs-1.36-sed-locale.patch 2142
-MD5 e49935e8abf94d6e906bad2d068d43c3 files/e2fsprogs-1.37-e2p-test.patch 380
MD5 f079047f6885f762f6fa838b55236cb2 files/e2fsprogs-sed-locale.patch 5989
-MD5 0911aedd4968aa4053139791a961e2a2 files/digest-e2fsprogs-1.38 67
+MD5 e86bf4d241506baff5f647cbd30ae7a0 files/digest-e2fsprogs-1.36 67
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2 (GNU/Linux)
+
+iD8DBQFC9awegIKl8Uu19MoRAhRqAJ9U3uMGW5sNBRLudrXS48/eVr4AkQCfc2Ze
+CqZVUn+SyykwpD2Zo0Eop5A=
+=sDMk
+-----END PGP SIGNATURE-----
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.38.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.38.ebuild
index 02237fd76b86..6218aa26e9e4 100644
--- a/sys-fs/e2fsprogs/e2fsprogs-1.38.ebuild
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.38.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/e2fsprogs-1.38.ebuild,v 1.7 2005/07/25 19:49:13 killerfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/e2fsprogs-1.38.ebuild,v 1.8 2005/08/07 06:36:56 vapier Exp $
inherit eutils flag-o-matic toolchain-funcs
@@ -28,6 +28,8 @@ src_unpack() {
chmod u+w po/*.po # Userpriv fix #27348
# Clean up makefile to suck less
epatch "${FILESDIR}"/e2fsprogs-1.36-makefile.patch
+ # Fix segfault with disconnected inodes #91751
+ epatch "${FILESDIR}"/${P}-disconnected-inodes.patch
# kernel headers use the same defines as e2fsprogs and can cause issues #48829
sed -i \
@@ -68,7 +70,7 @@ src_compile() {
$(use_enable nls) \
${myconf} \
|| die
- if [[ ${CTARGET} != *-uclibc ]] && grep -qs 'USE_INCLUDED_LIBINTL.*yes' config.{log,status} ; then
+ if [[ ${CTARGET:-${CHOST}} != *-uclibc ]] && grep -qs 'USE_INCLUDED_LIBINTL.*yes' config.{log,status} ; then
eerror "INTL sanity check failed, aborting build."
eerror "Please post your ${S}/config.log file as an"
eerror "attachment to http://bugs.gentoo.org/show_bug.cgi?id=81096"
diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.38-disconnected-inodes.patch b/sys-fs/e2fsprogs/files/e2fsprogs-1.38-disconnected-inodes.patch
new file mode 100644
index 000000000000..f66ca8a06dc1
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsprogs-1.38-disconnected-inodes.patch
@@ -0,0 +1,79 @@
+http://bugs.gentoo.org/91751
+
+2005-07-04 Theodore Ts'o <tytso@mit.edu>
+
+ * pass2.c (e2fsck_process_bad_inode): Fixed bug which could cause
+ e2fsck to core dump if a disconnected inode contained an
+ extended attribute. This was actually caused by two bugs.
+ The first bug is that if the inode has been fully fixed
+ up, the code will attempt to remove the inode from the
+ inode_bad_map without checking to see if this bitmap is
+ present. Since it is cleared at the end of pass 2, if
+ e2fsck_process_bad_inode is called in pass 4 (as it is for
+ disconnected inodes), this would result in a core dump.
+ This bug was mostly hidden by a second bug, which caused
+ e2fsck_process_bad_inode() to consider all inodes without
+ an extended attribute to be not fixed. (Addresses Debian
+ Bug: #316736)
+
+--- e2fsck/pass2.c
++++ e2fsck/pass2.c
+@@ -1184,27 +1184,29 @@
+ pctx.inode = &inode;
+
+ if (inode.i_file_acl &&
+- !(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR) &&
+- fix_problem(ctx, PR_2_FILE_ACL_ZERO, &pctx)) {
+- inode.i_file_acl = 0;
++ !(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
++ if (fix_problem(ctx, PR_2_FILE_ACL_ZERO, &pctx)) {
++ inode.i_file_acl = 0;
+ #ifdef EXT2FS_ENABLE_SWAPFS
+- /*
+- * This is a special kludge to deal with long symlinks
+- * on big endian systems. i_blocks had already been
+- * decremented earlier in pass 1, but since i_file_acl
+- * hadn't yet been cleared, ext2fs_read_inode()
+- * assumed that the file was short symlink and would
+- * not have byte swapped i_block[0]. Hence, we have
+- * to byte-swap it here.
+- */
+- if (LINUX_S_ISLNK(inode.i_mode) &&
+- (fs->flags & EXT2_FLAG_SWAP_BYTES) &&
+- (inode.i_blocks == fs->blocksize >> 9))
+- inode.i_block[0] = ext2fs_swab32(inode.i_block[0]);
++ /*
++ * This is a special kludge to deal with long
++ * symlinks on big endian systems. i_blocks
++ * had already been decremented earlier in
++ * pass 1, but since i_file_acl hadn't yet
++ * been cleared, ext2fs_read_inode() assumed
++ * that the file was short symlink and would
++ * not have byte swapped i_block[0]. Hence,
++ * we have to byte-swap it here.
++ */
++ if (LINUX_S_ISLNK(inode.i_mode) &&
++ (fs->flags & EXT2_FLAG_SWAP_BYTES) &&
++ (inode.i_blocks == fs->blocksize >> 9))
++ inode.i_block[0] = ext2fs_swab32(inode.i_block[0]);
+ #endif
+- inode_modified++;
+- } else
+- not_fixed++;
++ inode_modified++;
++ } else
++ not_fixed++;
++ }
+
+ if (!LINUX_S_ISDIR(inode.i_mode) && !LINUX_S_ISREG(inode.i_mode) &&
+ !LINUX_S_ISCHR(inode.i_mode) && !LINUX_S_ISBLK(inode.i_mode) &&
+@@ -1302,7 +1304,7 @@
+
+ if (inode_modified)
+ e2fsck_write_inode(ctx, ino, &inode, "process_bad_inode");
+- if (!not_fixed)
++ if (!not_fixed && ctx->inode_bad_map)
+ ext2fs_unmark_inode_bitmap(ctx->inode_bad_map, ino);
+ return 0;
+ }
+