summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ross <aross@gentoo.org>2006-12-16 00:56:19 +0000
committerAndrew Ross <aross@gentoo.org>2006-12-16 00:56:19 +0000
commitae2b841899ed1cfaf9a57f718d4196751a891421 (patch)
tree4269ba2e383187356fdd82583096b12ac966d3c0
parentNarrow dep on xen to same version as xen-tools. (diff)
downloadaross-ae2b841899ed1cfaf9a57f718d4196751a891421.tar.gz
aross-ae2b841899ed1cfaf9a57f718d4196751a891421.tar.bz2
aross-ae2b841899ed1cfaf9a57f718d4196751a891421.zip
Add xen-sources-2.6.16.28 from the main tree.
svn path=/; revision=42
-rw-r--r--sys-kernel/xen-sources/Manifest13
-rw-r--r--sys-kernel/xen-sources/files/digest-xen-sources-2.6.16.289
-rw-r--r--sys-kernel/xen-sources/files/xen-sources-2.6.16.28-CVE-2006-3468.patch106
-rw-r--r--sys-kernel/xen-sources/xen-sources-2.6.16.28.ebuild43
4 files changed, 171 insertions, 0 deletions
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
+}