From ae2b841899ed1cfaf9a57f718d4196751a891421 Mon Sep 17 00:00:00 2001 From: Andrew Ross Date: Sat, 16 Dec 2006 00:56:19 +0000 Subject: Add xen-sources-2.6.16.28 from the main tree. svn path=/; revision=42 --- sys-kernel/xen-sources/Manifest | 13 +++ .../xen-sources/files/digest-xen-sources-2.6.16.28 | 9 ++ .../xen-sources-2.6.16.28-CVE-2006-3468.patch | 106 +++++++++++++++++++++ .../xen-sources/xen-sources-2.6.16.28.ebuild | 43 +++++++++ 4 files changed, 171 insertions(+) create mode 100644 sys-kernel/xen-sources/files/digest-xen-sources-2.6.16.28 create mode 100644 sys-kernel/xen-sources/files/xen-sources-2.6.16.28-CVE-2006-3468.patch create mode 100644 sys-kernel/xen-sources/xen-sources-2.6.16.28.ebuild diff --git a/sys-kernel/xen-sources/Manifest b/sys-kernel/xen-sources/Manifest index 06b637a..c437a91 100644 --- a/sys-kernel/xen-sources/Manifest +++ b/sys-kernel/xen-sources/Manifest @@ -1,9 +1,19 @@ +AUX xen-sources-2.6.16.28-CVE-2006-3468.patch 3700 RMD160 6f4f016f1e8586384824803228729490e15478c4 SHA1 8409d2d61224c3ca6c8341baed9de4a0e28bb04b SHA256 235e7d34d6545480e6fa1e1e190860ed2c081d7890bb6532c0aad2d973084fdc +MD5 07597cf53abbd6bf2a90bba4c514a8fb files/xen-sources-2.6.16.28-CVE-2006-3468.patch 3700 +RMD160 6f4f016f1e8586384824803228729490e15478c4 files/xen-sources-2.6.16.28-CVE-2006-3468.patch 3700 +SHA256 235e7d34d6545480e6fa1e1e190860ed2c081d7890bb6532c0aad2d973084fdc files/xen-sources-2.6.16.28-CVE-2006-3468.patch 3700 DIST genpatches-2.6.18-6.base.tar.bz2 96657 RMD160 b5007a574bf4fd697a7a9e147b4c315b060272b6 SHA1 d3063c33a031ad167150c15d779aacf8e69bc62a SHA256 3e40d86ad7b529185fec2591720ca6de837ed0b03bd430de63e27590888b8e9a DIST linux-2.6.16.tar.bz2 40845005 RMD160 af5c2f55733fadd2fdf8b00da55e7b31d516d4e8 SHA1 bef21cd5063a648f33a99a26f4742dd05eb4dca2 SHA256 1200dcc7e60fcdaf68618dba991917a47e41e67099e8b22143976ec972e2cad7 DIST linux-2.6.18.tar.bz2 41863580 RMD160 f92283f956880676bfb1f1d5288325461e4e02e7 SHA1 178f7d5bb3af0978d42b37651b8753323c7129c2 SHA256 c95280ff6c5d2a17788f7cc582d23ae8a9a7ba3f202ec6e4238eaadfce7c163d +DIST patch-2.6.16.28.bz2 76693 RMD160 5235c0b5f9665a279f5bf5d42f942cef215e822f SHA1 7b1d450cf300ec6788919e4b5601389e258d28cc SHA256 6b05fd7121a86a5a6cfd0177200259eeb9a3d276a3cb16ba8cf2acdd747fa6be DIST patch-2.6.16.29.bz2 86922 RMD160 9a20ca718ccf2b486f3825d5263840eb0467be49 SHA1 ee40534bc4439b77b078148252747d26dc10d975 SHA256 da632ce49b5f3a78560445211237ecce0f68de3584212e4b830f2e55778e0634 +DIST xen-3.0.2-src.tgz 4933621 RMD160 34e4431a981891319f8a5ea0c3f604e7d8d7d7af SHA1 b7e797048b516f8b385afd3da9ae2eded1b8033a SHA256 f18ffab16a457fa721d11933c75f8288f6958c88c2669857c7c11d5107ba2951 DIST xen-3.0.3_0-src.tgz 5465968 RMD160 528020035ee32144b52bcdfccc8c44708b0196ea SHA1 9505ae3a5a42bc969836de81f501341409291f78 SHA256 7220bb4b0474e530559f558fcb4da8c88f1095c8e2f420602a26dfea5020443f DIST xen-sources-2.6.18.patch.bz2 533784 RMD160 5426e25bc239e0f4fb4be1fa5c49ff14a9d30530 SHA1 f84f682d48b9ca4f2f1b0df91b4eaf52dd1d0ef4 SHA256 9e58be16d90650966efa05d845bd5b0d88b900bf71ff932ccdf54e13fa984c3e +EBUILD xen-sources-2.6.16.28.ebuild 1612 RMD160 e10fd59aae61b3c1c1d256053c166b47b7f575c7 SHA1 afad39fe7539a2796593edc95be1d498be995ff8 SHA256 1579641cae4d4e6cf4ce1c11f4b860b36d2b01ae81ea2ae64e49eb1decb7804c +MD5 cdd1574a18b704893fa9dee6e63e59a9 xen-sources-2.6.16.28.ebuild 1612 +RMD160 e10fd59aae61b3c1c1d256053c166b47b7f575c7 xen-sources-2.6.16.28.ebuild 1612 +SHA256 1579641cae4d4e6cf4ce1c11f4b860b36d2b01ae81ea2ae64e49eb1decb7804c xen-sources-2.6.16.28.ebuild 1612 EBUILD xen-sources-2.6.16.29.ebuild 1578 RMD160 df5ff923cfd39c2cbad230c0c55f919a18155e4c SHA1 7bf00e87635461c319d7b08899f0bea1045a0a01 SHA256 14ea18e187b533a1513cf0a44baab171b2a5a98b395bd5b66e33048f8f55b4bd MD5 24f51266bdb40429b69c57782227730b xen-sources-2.6.16.29.ebuild 1578 RMD160 df5ff923cfd39c2cbad230c0c55f919a18155e4c xen-sources-2.6.16.29.ebuild 1578 @@ -12,6 +22,9 @@ EBUILD xen-sources-2.6.18.ebuild 471 RMD160 372750ca136fbc1463ffde0c309f30bd5dc8 MD5 3a73e9cc521ca6f8af845bbe1e2d8d16 xen-sources-2.6.18.ebuild 471 RMD160 372750ca136fbc1463ffde0c309f30bd5dc823d7 xen-sources-2.6.18.ebuild 471 SHA256 747d51c438f3e69173765a33777104403f144c904261c64dc23370a29d67ba12 xen-sources-2.6.18.ebuild 471 +MD5 577d28e423cb641a10a19426dd7d4b75 files/digest-xen-sources-2.6.16.28 717 +RMD160 733fddcdf423e30d8e952092cf4d2d2b8ecae621 files/digest-xen-sources-2.6.16.28 717 +SHA256 432b14d8eb07be2c7b17c028a5724598eae329997631a5bd3cee8251eec694bb files/digest-xen-sources-2.6.16.28 717 MD5 e3dd60d0bb0cb4389169dd12b87fda93 files/digest-xen-sources-2.6.16.29 723 RMD160 d3d06eb72807564bbbcbd7758e836ec4731b0f09 files/digest-xen-sources-2.6.16.29 723 SHA256 f2ca6938f7cfb5fb8167c27707a6c3fd1bbe7b631ddc2e2f08a37f604c72412d files/digest-xen-sources-2.6.16.29 723 diff --git a/sys-kernel/xen-sources/files/digest-xen-sources-2.6.16.28 b/sys-kernel/xen-sources/files/digest-xen-sources-2.6.16.28 new file mode 100644 index 0000000..30347f3 --- /dev/null +++ b/sys-kernel/xen-sources/files/digest-xen-sources-2.6.16.28 @@ -0,0 +1,9 @@ +MD5 9a91b2719949ff0856b40bc467fd47be linux-2.6.16.tar.bz2 40845005 +RMD160 af5c2f55733fadd2fdf8b00da55e7b31d516d4e8 linux-2.6.16.tar.bz2 40845005 +SHA256 1200dcc7e60fcdaf68618dba991917a47e41e67099e8b22143976ec972e2cad7 linux-2.6.16.tar.bz2 40845005 +MD5 736e7d741c0650c320c2b37bf6de3c0b patch-2.6.16.28.bz2 76693 +RMD160 5235c0b5f9665a279f5bf5d42f942cef215e822f patch-2.6.16.28.bz2 76693 +SHA256 6b05fd7121a86a5a6cfd0177200259eeb9a3d276a3cb16ba8cf2acdd747fa6be patch-2.6.16.28.bz2 76693 +MD5 544eab940a0734a55459d648e5c3b224 xen-3.0.2-src.tgz 4933621 +RMD160 34e4431a981891319f8a5ea0c3f604e7d8d7d7af xen-3.0.2-src.tgz 4933621 +SHA256 f18ffab16a457fa721d11933c75f8288f6958c88c2669857c7c11d5107ba2951 xen-3.0.2-src.tgz 4933621 diff --git a/sys-kernel/xen-sources/files/xen-sources-2.6.16.28-CVE-2006-3468.patch b/sys-kernel/xen-sources/files/xen-sources-2.6.16.28-CVE-2006-3468.patch new file mode 100644 index 0000000..1452939 --- /dev/null +++ b/sys-kernel/xen-sources/files/xen-sources-2.6.16.28-CVE-2006-3468.patch @@ -0,0 +1,106 @@ +diff --exclude-from=/home/dang/.diffrc -u -ruN linux-2.6.16.orig/fs/ext3/inode.c linux-2.6.16/fs/ext3/inode.c +--- linux-2.6.16.orig/fs/ext3/inode.c 2006-03-20 00:53:29.000000000 -0500 ++++ linux-2.6.16/fs/ext3/inode.c 2006-09-06 17:58:38.000000000 -0400 +@@ -1005,7 +1005,7 @@ + ret = PTR_ERR(handle); + goto out; + } +- if (test_opt(inode->i_sb, NOBH)) ++ if (test_opt(inode->i_sb, NOBH) && ext3_should_writeback_data(inode)) + ret = nobh_prepare_write(page, from, to, ext3_get_block); + else + ret = block_prepare_write(page, from, to, ext3_get_block); +@@ -1093,7 +1093,7 @@ + if (new_i_size > EXT3_I(inode)->i_disksize) + EXT3_I(inode)->i_disksize = new_i_size; + +- if (test_opt(inode->i_sb, NOBH)) ++ if (test_opt(inode->i_sb, NOBH) && ext3_should_writeback_data(inode)) + ret = nobh_commit_write(file, page, from, to); + else + ret = generic_commit_write(file, page, from, to); +@@ -1343,7 +1343,7 @@ + goto out_fail; + } + +- if (test_opt(inode->i_sb, NOBH)) ++ if (test_opt(inode->i_sb, NOBH) && ext3_should_writeback_data(inode)) + ret = nobh_writepage(page, ext3_get_block, wbc); + else + ret = block_write_full_page(page, ext3_get_block, wbc); +@@ -2258,17 +2258,15 @@ + struct buffer_head *bh; + struct ext3_group_desc * gdp; + +- +- if ((ino != EXT3_ROOT_INO && +- ino != EXT3_JOURNAL_INO && +- ino != EXT3_RESIZE_INO && +- ino < EXT3_FIRST_INO(sb)) || +- ino > le32_to_cpu( +- EXT3_SB(sb)->s_es->s_inodes_count)) { +- ext3_error (sb, "ext3_get_inode_block", +- "bad inode number: %lu", ino); ++ if (!ext3_valid_inum(sb, ino)) { ++ /* ++ * This error is already checked for in namei.c unless we are ++ * looking at an NFS filehandle, in which case no error ++ * report is needed ++ */ + return 0; + } ++ + block_group = (ino - 1) / EXT3_INODES_PER_GROUP(sb); + if (block_group >= EXT3_SB(sb)->s_groups_count) { + ext3_error (sb, "ext3_get_inode_block", +diff --exclude-from=/home/dang/.diffrc -u -ruN linux-2.6.16.orig/fs/ext3/namei.c linux-2.6.16/fs/ext3/namei.c +--- linux-2.6.16.orig/fs/ext3/namei.c 2006-03-20 00:53:29.000000000 -0500 ++++ linux-2.6.16/fs/ext3/namei.c 2006-09-06 17:55:59.000000000 -0400 +@@ -1000,7 +1000,12 @@ + if (bh) { + unsigned long ino = le32_to_cpu(de->inode); + brelse (bh); +- inode = iget(dir->i_sb, ino); ++ if (!ext3_valid_inum(dir->i_sb, ino)) { ++ ext3_error(dir->i_sb, "ext3_lookup", ++ "bad inode number: %lu", ino); ++ inode = NULL; ++ } else ++ inode = iget(dir->i_sb, ino); + + if (!inode) + return ERR_PTR(-EACCES); +@@ -1028,7 +1033,13 @@ + return ERR_PTR(-ENOENT); + ino = le32_to_cpu(de->inode); + brelse(bh); +- inode = iget(child->d_inode->i_sb, ino); ++ ++ if (!ext3_valid_inum(child->d_inode->i_sb, ino)) { ++ ext3_error(child->d_inode->i_sb, "ext3_get_parent", ++ "bad inode number: %lu", ino); ++ inode = NULL; ++ } else ++ inode = iget(child->d_inode->i_sb, ino); + + if (!inode) + return ERR_PTR(-EACCES); +diff --exclude-from=/home/dang/.diffrc -u -ruN linux-2.6.16.orig/include/linux/ext3_fs.h linux-2.6.16/include/linux/ext3_fs.h +--- linux-2.6.16.orig/include/linux/ext3_fs.h 2006-03-20 00:53:29.000000000 -0500 ++++ linux-2.6.16/include/linux/ext3_fs.h 2006-09-06 17:55:59.000000000 -0400 +@@ -494,6 +494,15 @@ + { + return container_of(inode, struct ext3_inode_info, vfs_inode); + } ++ ++static inline int ext3_valid_inum(struct super_block *sb, unsigned long ino) ++{ ++ return ino == EXT3_ROOT_INO || ++ ino == EXT3_JOURNAL_INO || ++ ino == EXT3_RESIZE_INO || ++ (ino >= EXT3_FIRST_INO(sb) && ++ ino <= le32_to_cpu(EXT3_SB(sb)->s_es->s_inodes_count)); ++} + #else + /* Assume that user mode programs are passing in an ext3fs superblock, not + * a kernel struct super_block. This will allow us to call the feature-test diff --git a/sys-kernel/xen-sources/xen-sources-2.6.16.28.ebuild b/sys-kernel/xen-sources/xen-sources-2.6.16.28.ebuild new file mode 100644 index 0000000..c88c873 --- /dev/null +++ b/sys-kernel/xen-sources/xen-sources-2.6.16.28.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/xen-sources/xen-sources-2.6.16.28.ebuild,v 1.1 2006/09/10 11:36:22 aross Exp $ + +ETYPE="sources" +inherit kernel-2 eutils +detect_arch +detect_version +[ "${PR}" == "r0" ] && KV=${PV/_/-}-xen || KV=${PV/_/-}-xen-${PR} + +DESCRIPTION="Full sources for a dom0/domU Linux kernel to run under Xen" +HOMEPAGE="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html" +XEN_VERSION="3.0.2" +MY_P="xen-${XEN_VERSION}" +SRC_URI="${KERNEL_URI} mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/patch-${PV}.bz2 http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/xen-${XEN_VERSION}-src.tgz" + +KEYWORDS="~x86 ~amd64" +#RDEPEND="~app-emulation/xen-${XEN_VERSION}" +S="${WORKDIR}" +RESTRICT="nostrip" +XEN_KV=${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} + +src_unpack() { + unpack ${A} + cd ${MY_P} + mv "${WORKDIR}"/patch-${PV} patches/linux-${XEN_KV}/linux-${PV}.patch \ + || die "failed to mv ${WORKDIR}/patch-${PV}" + sed -e 's:relative_lndir \([^(].*\):cp -dpPR \1/* .:' \ + -i linux-2.6-xen-sparse/mkbuildtree || die + + # No need to run oldconfig + sed -e 's:$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) oldconfig::' \ + -i buildconfigs/mk.linux-2.6-xen + + make LINUX_SRC_PATH=${DISTDIR} -f buildconfigs/mk.linux-2.6-xen \ + linux-${XEN_KV}-xen/include/linux/autoconf.h || die + mv linux-${XEN_KV}-xen "${WORKDIR}"/linux-${KV} || die + rm -rf "${WORKDIR}"/linux-${XEN_KV} || die + rm -rf "${WORKDIR}/${MY_P}" || die + + cd "${WORKDIR}"/linux-${KV} + epatch "${FILESDIR}/${P}"-CVE-2006-3468.patch +} -- cgit v1.2.3-65-gdbad