diff options
author | Tim Yamin <plasmaroo@gentoo.org> | 2004-08-09 21:50:52 +0000 |
---|---|---|
committer | Tim Yamin <plasmaroo@gentoo.org> | 2004-08-09 21:50:52 +0000 |
commit | f5ca63135507c86179d765cf29090f44598546a9 (patch) | |
tree | 1056b1e80776ca137544310c8eb14befb0554db6 | |
parent | initial commit of mtd for JFFS2: The Journalling Flash File System, version 2 (diff) | |
download | historical-f5ca63135507c86179d765cf29090f44598546a9.tar.gz historical-f5ca63135507c86179d765cf29090f44598546a9.tar.bz2 historical-f5ca63135507c86179d765cf29090f44598546a9.zip |
Bye bye compaq-sources. Removing due to multiple unpatched unknown possible
security issues, Compaq[R] being dead and most of the fixes have been commited
into the main trees anyway by now according to taviso. Approval: gregkh, taviso.
19 files changed, 0 insertions, 1420 deletions
diff --git a/sys-kernel/compaq-sources/ChangeLog b/sys-kernel/compaq-sources/ChangeLog deleted file mode 100644 index 74ede69a47fa..000000000000 --- a/sys-kernel/compaq-sources/ChangeLog +++ /dev/null @@ -1,86 +0,0 @@ -# ChangeLog for sys-kernel/compaq-sources -# Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/compaq-sources/ChangeLog,v 1.15 2004/08/08 15:50:04 plasmaroo Exp $ - -*compaq-sources-2.4.9.32.7-r9 (08 Aug 2004) - - 08 Aug 2004; <plasmaroo@gentoo.org> -compaq-sources-2.4.9.32.7-r8.ebuild, - +compaq-sources-2.4.9.32.7-r9.ebuild, - +files/compaq-sources-2.4.9.32.7.CAN-2004-0685.patch: - Version bump for CAN-2004-0685, bug #59769. - -*compaq-sources-2.4.9.32.7-r8 (09 Jul 2004) - - 09 Jul 2004; <plasmaroo@gentoo.org> -compaq-sources-2.4.9.32.7-r7.ebuild, - +compaq-sources-2.4.9.32.7-r8.ebuild, - +files/compaq-sources-2.4.9.32.7.CAN-2004-0497.patch: - Patched for attribute vulnerabilities, bug #56479. - - 26 Jun 2004; Jon Hood <squinky86@gentoo.org> - compaq-sources-2.4.9.32.7-r7.ebuild: - fix HOMEPAGE (#52381) - -*compaq-sources-2.4.9.32.7-r7 (24 Jun 2004) - - 24 Jun 2004; <plasmaroo@gentoo.org> -compaq-sources-2.4.9.32.7-r6.ebuild, - +compaq-sources-2.4.9.32.7-r7.ebuild, - +files/compaq-sources-2.4.9.32.7.CAN-2004-0495.patch: - Security bump for the CAN-2004-0495 vulnerability. - -*compaq-sources-2.4.9.32.7-r6 (19 Jun 2004) - - 19 Jun 2004; <plasmaroo@gentoo.org> -compaq-sources-2.4.9.32.7-r5.ebuild, - +compaq-sources-2.4.9.32.7-r6.ebuild, - +files/compaq-sources-2.4.9.32.7.I2C_Limits.patch: - Added a patch to add in missing I2C sanity checks that were added upstream in - 2.4.21. - -*compaq-sources-2.4.9.32.7-r5 (29 May 2004) - - 29 May 2004; <plasmaroo@gentoo.org> -compaq-sources-2.4.9.32.7-r4.ebuild, - +compaq-sources-2.4.9.32.7-r5.ebuild, - +files/compaq-sources-2.4.9.32.7.CAN-2004-0394.patch, - +files/compaq-sources-2.4.9.32.7.CAN-2004-0427.patch: - Added patches for the CAN-2004-0394 and CAN-2004-0427 vulnerabilities. Bug - #47881. - -*compaq-sources-2.4.9.32.7-r4 (17 Apr 2004) - - 17 Apr 2004; <plasmaroo@gentoo.org> - +files/compaq-sources-2.4.9.32.7.CAN-2004-0010.patch, - +files/compaq-sources-2.4.9.32.7.CAN-2004-0177.patch, - +files/compaq-sources-2.4.9.32.7.CAN-2004-0178.patch, - -compaq-sources-2.4.9.32.7-r3.ebuild, +compaq-sources-2.4.9.32.7-r4.ebuild: - Added patches for the CAN-2004-0010, CAN-2004-0177 and CAN-2004-0178 - vulnerabilities. - -*compaq-sources-2.4.9.32.7-r3 (15 Apr 2004) - - 15 Apr 2004; <plasmaroo@gentoo.org> compaq-sources-2.4.9.32.7-r2.ebuild, - compaq-sources-2.4.9.32.7-r3.ebuild, - files/compaq-sources-2.4.9.32.7.CAN-2004-0109.patch: - Version bump for the CAN-2004-0109 issue; bug #47881. - - 12 Apr 2004; Daniel Ahlberg <aliz@gentoo.org> - compaq-sources-2.4.9.32.7-r2.ebuild: - Add eutils to inherit, add IUSE= - -*compaq-sources-2.4.9.32.7-r2 (18 Feb 2004) - - 18 Feb 2004; <plasmaroo@gentoo.org> compaq-sources-2.4.9.32.7-r1.ebuild, - compaq-sources-2.4.9.32.7-r2.ebuild: - Added the patch for the mremap/munmap vulnerability. Bug #42024. - - 06 Jan 2004; <plasmaroo@gentoo.org> compaq-sources-2.4.9.32.7-r1.ebuild, - files/compaq-sources-2.4.9.32.7.CAN-2003-0985.patch, - files/compaq-sources-2.4.9.32.7.do_brk.patch, - files/compaq-sources-2.4.9.32.7.rtc_fix.patch: - Added patches to address the security vulnerabilities in bugs #37292 and - #37317. - -*compaq-sources-2.4.9.32.7 (13 May 2003) - - 13 May 2003; Tavis Ormandy <taviso@gentoo.org> - compaq-sources-2.4.9.32.7.ebuild: - Initial Import, new kernel for ALPHA users. - diff --git a/sys-kernel/compaq-sources/Manifest b/sys-kernel/compaq-sources/Manifest deleted file mode 100644 index bfc8f217d4ac..000000000000 --- a/sys-kernel/compaq-sources/Manifest +++ /dev/null @@ -1,18 +0,0 @@ -MD5 9ebc012a73903454ef3c1da028d6556e ChangeLog 3338 -MD5 fa89a9407fb524aa495fff27051ef881 metadata.xml 684 -MD5 8ce0468c38bb3613e19e073c555e0b4c compaq-sources-2.4.9.32.7-r9.ebuild 3736 -MD5 147fec50180ad91b6260fc7201dcb90f files/compaq-sources-2.4.9.32.7.CAN-2004-0010.patch 6050 -MD5 e637c6fa41097ea2c4693d0766f2e1c5 files/compaq-sources-2.4.9.32.7.do_brk.patch 242 -MD5 2c8a6f5232ae153c016cd241881b0719 files/compaq-sources-2.4.9.32.7.rtc_fix.patch 2152 -MD5 ac42024b6e6ee1e2165914db4b22a61c files/compaq-sources-2.4.9.32.7.CAN-2004-0178.patch 424 -MD5 c460ea130cb4ae84a5063ba044e3ce72 files/compaq-sources-2.4.9.32.7.CAN-2004-0427.patch 460 -MD5 21f3a4f186017d925067335e24db36a1 files/compaq-sources-2.4.9.32.7.CAN-2004-0109.patch 1877 -MD5 e30386f1121b1197396ed9082eae7dcb files/compaq-sources-2.4.9.32.7.I2C_Limits.patch 1037 -MD5 3bdf00d5f80fe9dfbfe8220e076cd04c files/compaq-sources-2.4.9.32.7.CAN-2004-0497.patch 707 -MD5 942bf419fd5ef9c56b2025b5af96abb8 files/digest-compaq-sources-2.4.9.32.7-r9 81 -MD5 a59596c90f6b86ec863fd748ec65747b files/compaq-sources-2.4.9.32.7.CAN-2004-0177.patch 397 -MD5 d4a740ae56c2049247083af387a22a85 files/compaq-sources-2.4.9.32.7.CAN-2004-0394.patch 350 -MD5 6fdb27f0093d093f7597eda7f588331c files/compaq-sources-2.4.9.32.7.CAN-2004-0495.patch 18498 -MD5 c4a945244e39c7aef71feea2b892eeae files/compaq-sources-2.4.9.32.7.CAN-2004-0685.patch 1166 -MD5 174438d215b70cad5ffb00ca8123c062 files/compaq-sources-2.4.9.32.7.munmap.patch 837 -MD5 e77a93fdf26f06cf3ea5080b27211725 files/compaq-sources-2.4.9.32.7.CAN-2003-0985.patch 414 diff --git a/sys-kernel/compaq-sources/compaq-sources-2.4.9.32.7-r9.ebuild b/sys-kernel/compaq-sources/compaq-sources-2.4.9.32.7-r9.ebuild deleted file mode 100644 index 384ac2851fd7..000000000000 --- a/sys-kernel/compaq-sources/compaq-sources-2.4.9.32.7-r9.ebuild +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 1999-2004 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/compaq-sources/compaq-sources-2.4.9.32.7-r9.ebuild,v 1.1 2004/08/08 15:40:22 plasmaroo Exp $ - -ETYPE="sources" -inherit kernel eutils -OKV=2.4.9 -KV=${OKV}-32.7 -EXTRAVERSION="-compaq-${PR}" -S=${WORKDIR}/linux-${KV} -IUSE="" - -# This ebuild installs the sources for the Linux kernel shipped with the -# latest version of Red Hat Linux for Alpha, maintained by Compaq. -# -# -taviso <taviso@gentoo.org> -# - -DEPEND="${DEPEND} - app-arch/rpm2targz - >=sys-apps/sed-4" - -REDPEND="" -DESCRIPTION="Kernel from the Compaq Distribution of Red Hat Linux (ALPHA)." -SRC_URI="ftp://ftp2.compaq.com/pub/linux/RedHat/7.2-alpha/updates/rpms/alpha/kernel-source-${KV}.alpha.rpm" -HOMEPAGE="http://www.kernel.org/ http://www.redhat.com/ http://h18000.www1.hp.com/products/software/alpha-tools/redhat/" -KEYWORDS="-* ~alpha" -SLOT="${KV}" - -src_unpack() { - local kernel_rpm="kernel-source-${KV}.alpha.rpm" - cd ${WORKDIR} - - ebegin "Unpacking Distribution RPM" - - # agriffis' fast+efficient rpm extraction method from - # the dev-lang/ccc ebuild. - # - i=${DISTDIR}/${kernel_rpm} - dd ibs=`rpmoffset < ${i}` skip=1 if=$i 2>/dev/null \ - | gzip -dc | cpio -idmu 2>/dev/null \ - && find usr -type d -print0 | xargs -0 chmod a+rx - eend ${?} - assert "Failed to extract ${kernel_rpm%.rpm}.tar.gz" - - mv usr/src/linux-${KV} ${WORKDIR} - cd ${S} - - # Just fix a couple of minor issues... - sed -i 's#include/linux/autoconf.h \(include/linux/version.h \\\)#\1#' Makefile - sed -i 's#\(extern\) \(unsigned long irq_err_count;\)#\1 volatile \2#' arch/alpha/kernel/irq_alpha.c - sed -i 's#/DISCARD/ : { \*(.text.exit)#/DISCARD/ : {#' arch/alpha/vmlinux.lds.in - - # Security patches - epatch ${FILESDIR}/${P}.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!" - epatch ${FILESDIR}/${P}.CAN-2004-0010.patch || die "Failed to add the CAN-2004-0010 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0109.patch || die "Failed to add the CAN-2004-0109 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0177.patch || die "Failed to add the CAN-2004-0177 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0178.patch || die "Failed to add the CAN-2004-0178 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0394.patch || die "Failed to add the CAN-2004-0394 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0427.patch || die "Failed to add the CAN-2004-0427 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0495.patch || die "Failed to add the CAN-2004-0495 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0497.patch || die "Failed to add the CAN-2004-0497 patch!" - epatch ${FILESDIR}/${P}.CAN-2004-0685.patch || die "Failed to add the CAN-2004-0685 patch!" - epatch ${FILESDIR}/${P}.do_brk.patch || die "Failed to patch do_brk() vulnerability!" - epatch ${FILESDIR}/${P}.I2C_Limits.patch || die "Failed to patch the I2C i2cdev_ioctl() kmalloc() bug!" - epatch ${FILESDIR}/${P}.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!" - epatch ${FILESDIR}/${P}.munmap.patch || die "Failed to apply munmap patch!" - - # Hand it over to the eclass... - kernel_universal_unpack -} - -pkg_postinst () { - einfo "This ebuild has installed the sources for the Linux kernel shipped with the" - einfo "latest version of Red Hat Linux Alpha, maintained by Compaq." - einfo - einfo "Compaq lag behind releases from kernel.org, but their kernels are" - einfo "extensively tested, and used by many thousands. This kernel will include" - einfo "bugfixes and extended hardware support, and is probably the most widely" - einfo "used Linux kernel on the Alpha Platform today." - einfo - ewarn "DO NOT Report issues with this kernel to Red Hat or Compaq, use" - ewarn "the Gentoo Linux bugzilla at http://bugs.gentoo.org/" -} diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2003-0985.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2003-0985.patch deleted file mode 100644 index dacf6ed810f9..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2003-0985.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- linux/mm/mremap.c.orig 2004-01-05 17:01:21.382104120 +0000 -+++ linux/mm/mremap.c 2004-01-05 17:15:25.689749848 +0000 -@@ -315,6 +315,10 @@ - old_len = PAGE_ALIGN(old_len); - new_len = PAGE_ALIGN(new_len); - -+ /* Don't allow the degenerate cases */ -+ if (!old_len || !new_len) -+ goto out; -+ - /* new_addr is only valid if MREMAP_FIXED is specified */ - if (flags & MREMAP_FIXED) { - if (new_addr & ~PAGE_MASK) diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0010.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0010.patch deleted file mode 100644 index 6b4b1cefa49e..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0010.patch +++ /dev/null @@ -1,200 +0,0 @@ -diff -urN linux-2.4.25-pre6/fs/ncpfs/dir.c linux-2.4.25-pre7/fs/ncpfs/dir.c ---- linux-2.4.25-pre6/fs/ncpfs/dir.c 2002-11-28 15:53:15.000000000 -0800 -+++ linux-2.4.25-pre7/fs/ncpfs/dir.c 2004-01-23 10:53:26.000000000 -0800 -@@ -266,8 +266,8 @@ - struct ncp_server *server; - struct inode *dir = dentry->d_parent->d_inode; - struct ncp_entry_info finfo; -- int res, val = 0, len = dentry->d_name.len + 1; -- __u8 __name[len]; -+ int res, val = 0, len; -+ __u8 __name[NCP_MAXPATHLEN + 1]; - - if (!dentry->d_inode || !dir) - goto finished; -@@ -291,14 +291,15 @@ - dentry->d_parent->d_name.name, dentry->d_name.name, - NCP_GET_AGE(dentry)); - -+ len = sizeof(__name); - if (ncp_is_server_root(dir)) { - res = ncp_io2vol(server, __name, &len, dentry->d_name.name, -- len-1, 1); -+ dentry->d_name.len, 1); - if (!res) - res = ncp_lookup_volume(server, __name, &(finfo.i)); - } else { - res = ncp_io2vol(server, __name, &len, dentry->d_name.name, -- len-1, !ncp_preserve_case(dir)); -+ dentry->d_name.len, !ncp_preserve_case(dir)); - if (!res) - res = ncp_obtain_info(server, dir, __name, &(finfo.i)); - } -@@ -548,9 +549,9 @@ - int valid = 0; - int hashed = 0; - ino_t ino = 0; -- __u8 __name[256]; -+ __u8 __name[NCP_MAXPATHLEN + 1]; - -- qname.len = 256; -+ qname.len = sizeof(__name); - if (ncp_vol2io(NCP_SERVER(inode), __name, &qname.len, - entry->i.entryName, entry->i.nameLen, - !ncp_preserve_entry_case(inode, entry->i.NSCreator))) -@@ -705,16 +706,19 @@ - { - struct ncp_server* server = NCP_SBP(sb); - struct nw_info_struct i; -- int result, len = strlen(server->m.mounted_vol) + 1; -- __u8 __name[len]; -+ int result; - - if (ncp_single_volume(server)) { -+ int len; - struct dentry* dent; -+ __u8 __name[NCP_MAXPATHLEN + 1]; - -- result = -ENOENT; -- if (ncp_io2vol(server, __name, &len, server->m.mounted_vol, -- len-1, 1)) -+ len = sizeof(__name); -+ result = ncp_io2vol(server, __name, &len, server->m.mounted_vol, -+ strlen(server->m.mounted_vol), 1); -+ if (result) - goto out; -+ result = -ENOENT; - if (ncp_lookup_volume(server, __name, &i)) { - PPRINTK("ncp_conn_logged_in: %s not found\n", - server->m.mounted_vol); -@@ -745,8 +749,8 @@ - struct ncp_server *server = NCP_SERVER(dir); - struct inode *inode = NULL; - struct ncp_entry_info finfo; -- int error, res, len = dentry->d_name.len + 1; -- __u8 __name[len]; -+ int error, res, len; -+ __u8 __name[NCP_MAXPATHLEN + 1]; - - error = -EIO; - if (!ncp_conn_valid(server)) -@@ -755,14 +759,15 @@ - PPRINTK("ncp_lookup: server lookup for %s/%s\n", - dentry->d_parent->d_name.name, dentry->d_name.name); - -+ len = sizeof(__name); - if (ncp_is_server_root(dir)) { - res = ncp_io2vol(server, __name, &len, dentry->d_name.name, -- len-1, 1); -+ dentry->d_name.len, 1); - if (!res) - res = ncp_lookup_volume(server, __name, &(finfo.i)); - } else { - res = ncp_io2vol(server, __name, &len, dentry->d_name.name, -- len-1, !ncp_preserve_case(dir)); -+ dentry->d_name.len, !ncp_preserve_case(dir)); - if (!res) - res = ncp_obtain_info(server, dir, __name, &(finfo.i)); - } -@@ -825,9 +830,9 @@ - { - struct ncp_server *server = NCP_SERVER(dir); - struct ncp_entry_info finfo; -- int error, result, len = dentry->d_name.len + 1; -+ int error, result, len; - int opmode; -- __u8 __name[len]; -+ __u8 __name[NCP_MAXPATHLEN + 1]; - - PPRINTK("ncp_create_new: creating %s/%s, mode=%x\n", - dentry->d_parent->d_name.name, dentry->d_name.name, mode); -@@ -836,8 +841,9 @@ - goto out; - - ncp_age_dentry(server, dentry); -+ len = sizeof(__name); - error = ncp_io2vol(server, __name, &len, dentry->d_name.name, -- len-1, !ncp_preserve_case(dir)); -+ dentry->d_name.len, !ncp_preserve_case(dir)); - if (error) - goto out; - -@@ -880,8 +886,8 @@ - { - struct ncp_entry_info finfo; - struct ncp_server *server = NCP_SERVER(dir); -- int error, len = dentry->d_name.len + 1; -- __u8 __name[len]; -+ int error, len; -+ __u8 __name[NCP_MAXPATHLEN + 1]; - - DPRINTK("ncp_mkdir: making %s/%s\n", - dentry->d_parent->d_name.name, dentry->d_name.name); -@@ -890,8 +896,9 @@ - goto out; - - ncp_age_dentry(server, dentry); -+ len = sizeof(__name); - error = ncp_io2vol(server, __name, &len, dentry->d_name.name, -- len-1, !ncp_preserve_case(dir)); -+ dentry->d_name.len, !ncp_preserve_case(dir)); - if (error) - goto out; - -@@ -909,8 +916,8 @@ - static int ncp_rmdir(struct inode *dir, struct dentry *dentry) - { - struct ncp_server *server = NCP_SERVER(dir); -- int error, result, len = dentry->d_name.len + 1; -- __u8 __name[len]; -+ int error, result, len; -+ __u8 __name[NCP_MAXPATHLEN + 1]; - - DPRINTK("ncp_rmdir: removing %s/%s\n", - dentry->d_parent->d_name.name, dentry->d_name.name); -@@ -923,8 +930,9 @@ - if (!d_unhashed(dentry)) - goto out; - -+ len = sizeof(__name); - error = ncp_io2vol(server, __name, &len, dentry->d_name.name, -- len-1, !ncp_preserve_case(dir)); -+ dentry->d_name.len, !ncp_preserve_case(dir)); - if (error) - goto out; - -@@ -1022,9 +1030,8 @@ - { - struct ncp_server *server = NCP_SERVER(old_dir); - int error; -- int old_len = old_dentry->d_name.len + 1; -- int new_len = new_dentry->d_name.len + 1; -- __u8 __old_name[old_len], __new_name[new_len]; -+ int old_len, new_len; -+ __u8 __old_name[NCP_MAXPATHLEN + 1], __new_name[NCP_MAXPATHLEN + 1]; - - DPRINTK("ncp_rename: %s/%s to %s/%s\n", - old_dentry->d_parent->d_name.name, old_dentry->d_name.name, -@@ -1037,15 +1044,17 @@ - ncp_age_dentry(server, old_dentry); - ncp_age_dentry(server, new_dentry); - -+ old_len = sizeof(__old_name); - error = ncp_io2vol(server, __old_name, &old_len, -- old_dentry->d_name.name, old_len-1, -- !ncp_preserve_case(old_dir)); -+ old_dentry->d_name.name, old_dentry->d_name.len, -+ !ncp_preserve_case(old_dir)); - if (error) - goto out; - -+ new_len = sizeof(__new_name); - error = ncp_io2vol(server, __new_name, &new_len, -- new_dentry->d_name.name, new_len-1, -- !ncp_preserve_case(new_dir)); -+ new_dentry->d_name.name, new_dentry->d_name.len, -+ !ncp_preserve_case(new_dir)); - if (error) - goto out; - - diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0109.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0109.patch deleted file mode 100644 index d02b51c57fc6..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0109.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- linux/fs/isofs/rock.c.orig -+++ linux/fs/isofs/rock.c -@@ -14,6 +14,7 @@ - #include <linux/slab.h> - #include <linux/pagemap.h> - #include <linux/smp_lock.h> -+#include <asm/page.h> - - #include "rock.h" - -@@ -419,7 +420,7 @@ - return 0; - } - --static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr) -+static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit) - { - int slen; - int rootflag; -@@ -431,16 +432,25 @@ - rootflag = 0; - switch (slp->flags & ~1) { - case 0: -+ if (slp->len > plimit - rpnt) -+ return NULL; - memcpy(rpnt, slp->text, slp->len); - rpnt+=slp->len; - break; -+ case 2: -+ if (rpnt >= plimit) -+ return NULL; -+ *rpnt++='.'; -+ break; - case 4: -+ if (2 > plimit - rpnt) -+ return NULL; - *rpnt++='.'; -- /* fallthru */ -- case 2: - *rpnt++='.'; - break; - case 8: -+ if (rpnt >= plimit) -+ return NULL; - rootflag = 1; - *rpnt++='/'; - break; -@@ -457,17 +467,23 @@ - * If there is another SL record, and this component - * record isn't continued, then add a slash. - */ -- if ((!rootflag) && (rr->u.SL.flags & 1) && !(oldslp->flags & 1)) -+ if ((!rootflag) && (rr->u.SL.flags & 1) && -+ !(oldslp->flags & 1)) { -+ if (rpnt >= plimit) -+ return NULL; - *rpnt++='/'; -+ } - break; - } - - /* - * If this component record isn't continued, then append a '/'. - */ -- if (!rootflag && !(oldslp->flags & 1)) -+ if (!rootflag && !(oldslp->flags & 1)) { -+ if (rpnt >= plimit) -+ return NULL; - *rpnt++='/'; -- -+ } - } - return rpnt; - } -@@ -548,7 +564,10 @@ - CHECK_SP(goto out); - break; - case SIG('S', 'L'): -- rpnt = get_symlink_chunk(rpnt, rr); -+ rpnt = get_symlink_chunk(rpnt, rr, -+ link + (PAGE_SIZE - 1)); -+ if (rpnt == NULL) -+ goto out; - break; - case SIG('C', 'E'): - /* This tells is if there is a continuation record */ - diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0177.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0177.patch deleted file mode 100644 index 68e160b3c46f..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0177.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- linux-2.4.9-32.7/fs/jbd/journal.c 2004-04-17 10:30:29.828087432 +0100 -+++ linux-2.4.9-32.7/fs/jbd/journal.c 2004-04-17 10:31:40.990269136 +0100 -@@ -619,6 +619,7 @@ - - bh = getblk(journal->j_dev, blocknr, journal->j_blocksize); - bh->b_state |= (1 << BH_Dirty); -+ memset(bh->b_data, 0, journal->j_blocksize); - BUFFER_TRACE(bh, "return this buffer"); - return journal_add_journal_head(bh); - } diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0178.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0178.patch deleted file mode 100644 index 19e57268c2fa..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0178.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- linux-2.4.26-pre2/drivers/sound/sb_audio.c 2002-02-25 11:38:06.000000000 -0800 -+++ linux-2.4.26-pre3/drivers/sound/sb_audio.c 2004-03-13 07:43:23.000000000 -0800 -@@ -879,7 +879,7 @@ - c -= locallen; p += locallen; - } - /* used = ( samples * 16 bits size ) */ -- *used = len << 1; -+ *used = max_in > ( max_out << 1) ? (max_out << 1) : max_in; - /* returned = ( samples * 8 bits size ) */ - *returned = len; - } diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0394.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0394.patch deleted file mode 100644 index 273f1a52046f..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0394.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- linux-2.4.22-oM3-orig/kernel/panic.c Tue Mar 30 15:37:18 2004 -+++ linux-2.4.22-oM3-mod/kernel/panic.c Mon May 17 18:44:01 2004 -@@ -51,7 +51,7 @@ - - bust_spinlocks(1); - va_start(args, fmt); -- vsprintf(buf, fmt, args); -+ vsnprintf(buf, sizeof(buf), fmt, args); - va_end(args); - printk(KERN_EMERG "Kernel panic: %s\n",buf); - if (in_interrupt()) diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0427.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0427.patch deleted file mode 100644 index ddc9610f67f8..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0427.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Nar -U 4 linux-2.4.25/kernel/fork.c linux-2.4.25-new/kernel/fork.c ---- linux-2.4.25/kernel/fork.c 2004-02-18 05:36:32.000000000 -0800 -+++ linux-2.4.25-new/kernel/fork.c 2004-04-07 17:43:29.000000000 -0700 -@@ -825,8 +825,10 @@ - bad_fork_cleanup_namespace: - exit_namespace(p); - bad_fork_cleanup_mm: - exit_mm(p); -+ if (p->active_mm) -+ mmdrop(p->active_mm); - bad_fork_cleanup_sighand: - exit_sighand(p); - bad_fork_cleanup_fs: - exit_fs(p); /* blocking */ diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0495.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0495.patch deleted file mode 100644 index 6cb4c9832c75..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0495.patch +++ /dev/null @@ -1,676 +0,0 @@ ---- linux/net/decnet/dn_dev.c.bak Wed Jun 16 14:42:24 2004 -+++ linux/net/decnet/dn_dev.c Wed Jun 16 14:42:34 2004 -@@ -1070,31 +1070,39 @@ int dnet_gifconf(struct net_device *dev, - { - struct dn_dev *dn_db = (struct dn_dev *)dev->dn_ptr; - struct dn_ifaddr *ifa; -- struct ifreq *ifr = (struct ifreq *)buf; -+ char buffer[DN_IFREQ_SIZE]; -+ struct ifreq *ifr = (struct ifreq *)buffer; -+ struct sockaddr_dn *addr = (struct sockaddr_dn *)&ifr->ifr_addr; - int done = 0; - - if ((dn_db == NULL) || ((ifa = dn_db->ifa_list) == NULL)) - return 0; - - for(; ifa; ifa = ifa->ifa_next) { -- if (!ifr) { -+ if (!buf) { - done += sizeof(DN_IFREQ_SIZE); - continue; - } - if (len < DN_IFREQ_SIZE) - return done; -- memset(ifr, 0, DN_IFREQ_SIZE); -+ memset(buffer, 0, DN_IFREQ_SIZE); - - if (ifa->ifa_label) - strcpy(ifr->ifr_name, ifa->ifa_label); - else - strcpy(ifr->ifr_name, dev->name); - -- (*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_family = AF_DECnet; -- (*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_add.a_len = 2; -- (*(dn_address *)(*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_add.a_addr) = ifa->ifa_local; -+ addr->sdn_family = AF_DECnet; -+ addr->sdn_add.a_len = 2; -+ memcpy(addr->sdn_add.a_addr, &ifa->ifa_local, -+ sizeof(dn_address)); - -- ifr = (struct ifreq *)((char *)ifr + DN_IFREQ_SIZE); -+ if (copy_to_user(buf, buffer, DN_IFREQ_SIZE)) { -+ done = -EFAULT; -+ break; -+ } -+ -+ buf += DN_IFREQ_SIZE; - len -= DN_IFREQ_SIZE; - done += DN_IFREQ_SIZE; - } ---- linux/drivers/net/wireless/airo.c.bak Wed Jun 16 14:42:24 2004 -+++ linux/drivers/net/wireless/airo.c Wed Jun 16 14:42:34 2004 -@@ -2164,23 +2164,26 @@ static int takedown_proc_entry( struct n - * to supply the data. - */ - static ssize_t proc_read( struct file *file, -- char *buffer, -- size_t len, -- loff_t *offset ) -+ char *buffer, -+ size_t len, -+ loff_t *offset ) - { -- int i; -- int pos; -- struct proc_data *priv = (struct proc_data*)file->private_data; -- -- if( !priv->rbuffer ) return -EINVAL; -- -- pos = *offset; -- for( i = 0; i+pos < priv->readlen && i < len; i++ ) { -- if (put_user( priv->rbuffer[i+pos], buffer+i )) -- return -EFAULT; -- } -- *offset += i; -- return i; -+ loff_t pos = *offset; -+ struct proc_data *priv = (struct proc_data*)file->private_data; -+ -+ if (!priv->rbuffer) -+ return -EINVAL; -+ -+ if (pos < 0) -+ return -EINVAL; -+ if (pos >= priv->readlen) -+ return 0; -+ if (len > priv->readlen - pos) -+ len = priv->readlen - pos; -+ if (copy_to_user(buffer, priv->rbuffer + pos, len)) -+ return -EFAULT; -+ *offset = pos + len; -+ return len; - } - - /* -@@ -2188,28 +2191,28 @@ static ssize_t proc_read( struct file *f - * to supply the data. - */ - static ssize_t proc_write( struct file *file, -- const char *buffer, -- size_t len, -- loff_t *offset ) -+ const char *buffer, -+ size_t len, -+ loff_t *offset ) - { -- int i; -- int pos; -- struct proc_data *priv = (struct proc_data*)file->private_data; -- -- if ( !priv->wbuffer ) { -- return -EINVAL; -- } -- -- pos = *offset; -- -- for( i = 0; i + pos < priv->maxwritelen && -- i < len; i++ ) { -- if (get_user( priv->wbuffer[i+pos], buffer + i )) -- return -EFAULT; -- } -- if ( i+pos > priv->writelen ) priv->writelen = i+file->f_pos; -- *offset += i; -- return i; -+ loff_t pos = *offset; -+ struct proc_data *priv = (struct proc_data*)file->private_data; -+ -+ if (!priv->wbuffer) -+ return -EINVAL; -+ -+ if (pos < 0) -+ return -EINVAL; -+ if (pos >= priv->maxwritelen) -+ return 0; -+ if (len > priv->maxwritelen - pos) -+ len = priv->maxwritelen - pos; -+ if (copy_from_user(priv->wbuffer + pos, buffer, len)) -+ return -EFAULT; -+ if (pos + len > priv->writelen) -+ priv->writelen = pos + len; -+ *offset = pos + len; -+ return len; - } - - static int proc_status_open( struct inode *inode, struct file *file ) { ---- linux/drivers/sound/mpu401.c.bak Wed Jun 16 14:42:24 2004 -+++ linux/drivers/sound/mpu401.c Wed Jun 16 14:42:34 2004 -@@ -1493,14 +1493,16 @@ static unsigned long mpu_timer_get_time( - static int mpu_timer_ioctl(int dev, unsigned int command, caddr_t arg) - { - int midi_dev = sound_timer_devs[dev]->devlink; -+ int *p = (int *)arg; - - switch (command) - { - case SNDCTL_TMR_SOURCE: - { - int parm; -- -- parm = *(int *) arg; -+ -+ if (get_user(parm, p)) -+ return -EFAULT; - parm &= timer_caps; - - if (parm != 0) -@@ -1512,7 +1514,9 @@ static int mpu_timer_ioctl(int dev, unsi - else if (timer_mode & TMR_MODE_SMPTE) - mpu_cmd(midi_dev, 0x3d, 0); /* Use SMPTE sync */ - } -- return (*(int *) arg = timer_mode); -+ if (put_user(timer_mode, p)) -+ return -EFAULT; -+ return timer_mode; - } - break; - -@@ -1537,10 +1541,13 @@ static int mpu_timer_ioctl(int dev, unsi - { - int val; - -- val = *(int *) arg; -+ if (get_user(val, p)) -+ return -EFAULT; - if (val) - set_timebase(midi_dev, val); -- return (*(int *) arg = curr_timebase); -+ if (put_user(curr_timebase, p)) -+ return -EFAULT; -+ return curr_timebase; - } - break; - -@@ -1549,7 +1556,8 @@ static int mpu_timer_ioctl(int dev, unsi - int val; - int ret; - -- val = *(int *) arg; -+ if (get_user(val, p)) -+ return -EFAULT; - - if (val) - { -@@ -1564,7 +1572,9 @@ static int mpu_timer_ioctl(int dev, unsi - } - curr_tempo = val; - } -- return (*(int *) arg = curr_tempo); -+ if (put_user(curr_tempo, p)) -+ return -EFAULT; -+ return curr_tempo; - } - break; - -@@ -1572,18 +1582,25 @@ static int mpu_timer_ioctl(int dev, unsi - { - int val; - -- val = *(int *) arg; -+ if (get_user(val, p)) -+ return -EFAULT; - if (val != 0) /* Can't change */ - return -EINVAL; -- return (*(int *) arg = ((curr_tempo * curr_timebase) + 30) / 60); -+ val = (curr_tempo * curr_timebase + 30) / 60; -+ if (put_user(val, p)) -+ return -EFAULT; -+ return val; - } - break; - - case SNDCTL_SEQ_GETTIME: -- return (*(int *) arg = curr_ticks); -+ if (put_user(curr_ticks, p)) -+ return -EFAULT; -+ return curr_ticks; - - case SNDCTL_TMR_METRONOME: -- metronome_mode = *(int *) arg; -+ if (get_user(metronome_mode, p)) -+ return -EFAULT; - setup_metronome(midi_dev); - return 0; - ---- linux/drivers/sound/msnd.c.bak Wed Jun 16 14:42:24 2004 -+++ linux/drivers/sound/msnd.c Wed Jun 16 14:42:34 2004 -@@ -155,13 +155,10 @@ void msnd_fifo_make_empty(msnd_fifo *f) - f->len = f->tail = f->head = 0; - } - --int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len, int user) -+int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len) - { - int count = 0; - -- if (f->len == f->n) -- return 0; -- - while ((count < len) && (f->len != f->n)) { - - int nwritten; -@@ -177,11 +174,7 @@ int msnd_fifo_write(msnd_fifo *f, const - nwritten = len - count; - } - -- if (user) { -- if (copy_from_user(f->data + f->tail, buf, nwritten)) -- return -EFAULT; -- } else -- isa_memcpy_fromio(f->data + f->tail, (unsigned long) buf, nwritten); -+ isa_memcpy_fromio(f->data + f->tail, (unsigned long) buf, nwritten); - - count += nwritten; - buf += nwritten; -@@ -193,13 +186,10 @@ int msnd_fifo_write(msnd_fifo *f, const - return count; - } - --int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len, int user) -+int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len) - { - int count = 0; - -- if (f->len == 0) -- return f->len; -- - while ((count < len) && (f->len > 0)) { - - int nread; -@@ -215,11 +205,7 @@ int msnd_fifo_read(msnd_fifo *f, char *b - nread = len - count; - } - -- if (user) { -- if (copy_to_user(buf, f->data + f->head, nread)) -- return -EFAULT; -- } else -- isa_memcpy_toio((unsigned long) buf, f->data + f->head, nread); -+ isa_memcpy_toio((unsigned long) buf, f->data + f->head, nread); - - count += nread; - buf += nread; ---- linux/drivers/sound/msnd.h.bak Wed Jun 16 14:42:24 2004 -+++ linux/drivers/sound/msnd.h Wed Jun 16 14:42:34 2004 -@@ -266,8 +266,8 @@ void msnd_fifo_init(msnd_fifo *f); - void msnd_fifo_free(msnd_fifo *f); - int msnd_fifo_alloc(msnd_fifo *f, size_t n); - void msnd_fifo_make_empty(msnd_fifo *f); --int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len, int user); --int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len, int user); -+int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len); -+int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len); - - int msnd_wait_TXDE(multisound_dev_t *dev); - int msnd_wait_HC0(multisound_dev_t *dev); ---- linux/drivers/sound/msnd_pinnacle.c.bak Wed Jun 16 14:42:24 2004 -+++ linux/drivers/sound/msnd_pinnacle.c Wed Jun 16 14:42:34 2004 -@@ -804,7 +804,7 @@ static int dev_release(struct inode *ino - - static __inline__ int pack_DARQ_to_DARF(register int bank) - { -- register int size, n, timeout = 3; -+ register int size, timeout = 3; - register WORD wTmp; - LPDAQD DAQD; - -@@ -825,13 +825,10 @@ static __inline__ int pack_DARQ_to_DARF( - /* Read data from the head (unprotected bank 1 access okay - since this is only called inside an interrupt) */ - outb(HPBLKSEL_1, dev.io + HP_BLKS); -- if ((n = msnd_fifo_write( -+ msnd_fifo_write( - &dev.DARF, - (char *)(dev.base + bank * DAR_BUFF_SIZE), -- size, 0)) <= 0) { -- outb(HPBLKSEL_0, dev.io + HP_BLKS); -- return n; -- } -+ size); - outb(HPBLKSEL_0, dev.io + HP_BLKS); - - return 1; -@@ -853,21 +850,16 @@ static __inline__ int pack_DAPF_to_DAPQ( - if (protect) { - /* Critical section: protect fifo in non-interrupt */ - spin_lock_irqsave(&dev.lock, flags); -- if ((n = msnd_fifo_read( -+ n = msnd_fifo_read( - &dev.DAPF, - (char *)(dev.base + bank_num * DAP_BUFF_SIZE), -- DAP_BUFF_SIZE, 0)) < 0) { -- spin_unlock_irqrestore(&dev.lock, flags); -- return n; -- } -+ DAP_BUFF_SIZE); - spin_unlock_irqrestore(&dev.lock, flags); - } else { -- if ((n = msnd_fifo_read( -+ n = msnd_fifo_read( - &dev.DAPF, - (char *)(dev.base + bank_num * DAP_BUFF_SIZE), -- DAP_BUFF_SIZE, 0)) < 0) { -- return n; -- } -+ DAP_BUFF_SIZE); - } - if (!n) - break; -@@ -894,30 +886,43 @@ static __inline__ int pack_DAPF_to_DAPQ( - static int dsp_read(char *buf, size_t len) - { - int count = len; -+ char *page = (char *)__get_free_page(PAGE_SIZE); -+ -+ if (!page) -+ return -ENOMEM; - - while (count > 0) { -- int n; -+ int n, k; - unsigned long flags; - -+ k = PAGE_SIZE; -+ if (k > count) -+ k = count; -+ - /* Critical section: protect fifo in non-interrupt */ - spin_lock_irqsave(&dev.lock, flags); -- if ((n = msnd_fifo_read(&dev.DARF, buf, count, 1)) < 0) { -- printk(KERN_WARNING LOGNAME ": FIFO read error\n"); -- spin_unlock_irqrestore(&dev.lock, flags); -- return n; -- } -+ n = msnd_fifo_read(&dev.DARF, page, k); - spin_unlock_irqrestore(&dev.lock, flags); -+ if (copy_to_user(buf, page, n)) { -+ free_page((unsigned long)page); -+ return -EFAULT; -+ } - buf += n; - count -= n; - -+ if (n == k && count) -+ continue; -+ - if (!test_bit(F_READING, &dev.flags) && dev.mode & FMODE_READ) { - dev.last_recbank = -1; - if (chk_send_dsp_cmd(&dev, HDEX_RECORD_START) == 0) - set_bit(F_READING, &dev.flags); - } - -- if (dev.rec_ndelay) -+ if (dev.rec_ndelay) { -+ free_page((unsigned long)page); - return count == len ? -EAGAIN : len - count; -+ } - - if (count > 0) { - set_bit(F_READBLOCK, &dev.flags); -@@ -926,41 +931,57 @@ static int dsp_read(char *buf, size_t le - get_rec_delay_jiffies(DAR_BUFF_SIZE))) - clear_bit(F_READING, &dev.flags); - clear_bit(F_READBLOCK, &dev.flags); -- if (signal_pending(current)) -+ if (signal_pending(current)) { -+ free_page((unsigned long)page); - return -EINTR; -+ } - } - } -- -+ free_page((unsigned long)page); - return len - count; - } - - static int dsp_write(const char *buf, size_t len) - { - int count = len; -+ char *page = (char *)__get_free_page(GFP_KERNEL); -+ -+ if (!page) -+ return -ENOMEM; - - while (count > 0) { -- int n; -+ int n, k; - unsigned long flags; - -+ k = PAGE_SIZE; -+ if (k > count) -+ k = count; -+ -+ if (copy_from_user(page, buf, k)) { -+ free_page((unsigned long)page); -+ return -EFAULT; -+ } -+ - /* Critical section: protect fifo in non-interrupt */ - spin_lock_irqsave(&dev.lock, flags); -- if ((n = msnd_fifo_write(&dev.DAPF, buf, count, 1)) < 0) { -- printk(KERN_WARNING LOGNAME ": FIFO write error\n"); -- spin_unlock_irqrestore(&dev.lock, flags); -- return n; -- } -+ n = msnd_fifo_write(&dev.DAPF, page, k); - spin_unlock_irqrestore(&dev.lock, flags); - buf += n; - count -= n; - -+ if (count && n == k) -+ continue; -+ - if (!test_bit(F_WRITING, &dev.flags) && (dev.mode & FMODE_WRITE)) { - dev.last_playbank = -1; - if (pack_DAPF_to_DAPQ(1) > 0) - set_bit(F_WRITING, &dev.flags); - } - -- if (dev.play_ndelay) -+ if (dev.play_ndelay) { -+ free_page((unsigned long)page); - return count == len ? -EAGAIN : len - count; -+ } - - if (count > 0) { - set_bit(F_WRITEBLOCK, &dev.flags); -@@ -968,11 +989,14 @@ static int dsp_write(const char *buf, si - &dev.writeblock, - get_play_delay_jiffies(DAP_BUFF_SIZE)); - clear_bit(F_WRITEBLOCK, &dev.flags); -- if (signal_pending(current)) -+ if (signal_pending(current)) { -+ free_page((unsigned long)page); - return -EINTR; -+ } - } - } - -+ free_page((unsigned long)page); - return len - count; - } - ---- linux/drivers/sound/pss.c.bak Wed Jun 16 14:42:24 2004 -+++ linux/drivers/sound/pss.c Wed Jun 16 14:42:34 2004 -@@ -450,20 +450,36 @@ static void pss_mixer_reset(pss_confdata - } - } - --static void arg_to_volume_mono(unsigned int volume, int *aleft) -+static int set_volume_mono(caddr_t p, int *aleft) - { - int left; -+ unsigned volume; -+ if (get_user(volume, (unsigned *)p)) -+ return -EFAULT; - -- left = volume & 0x00ff; -+ left = volume & 0xff; - if (left > 100) - left = 100; - *aleft = left; -+ return 0; - } - --static void arg_to_volume_stereo(unsigned int volume, int *aleft, int *aright) -+static int set_volume_stereo(caddr_t p, int *aleft, int *aright) - { -- arg_to_volume_mono(volume, aleft); -- arg_to_volume_mono(volume >> 8, aright); -+ int left, right; -+ unsigned volume; -+ if (get_user(volume, (unsigned *)p)) -+ return -EFAULT; -+ -+ left = volume & 0xff; -+ if (left > 100) -+ left = 100; -+ right = (volume >> 8) & 0xff; -+ if (right > 100) -+ right = 100; -+ *aleft = left; -+ *aright = right; -+ return 0; - } - - static int ret_vol_mono(int left) -@@ -510,33 +526,38 @@ static int pss_mixer_ioctl (int dev, uns - return call_ad_mixer(devc, cmd, arg); - else - { -- if (*(int *)arg != 0) -+ int v; -+ if (get_user(v, (int *)arg)) -+ return -EFAULT; -+ if (v != 0) - return -EINVAL; - return 0; - } - case SOUND_MIXER_VOLUME: -- arg_to_volume_stereo(*(unsigned int *)arg, &devc->mixer.volume_l, -- &devc->mixer.volume_r); -+ if (set_volume_stereo(arg, -+ &devc->mixer.volume_l, -+ &devc->mixer.volume_r)) -+ return -EFAULT; - set_master_volume(devc, devc->mixer.volume_l, - devc->mixer.volume_r); - return ret_vol_stereo(devc->mixer.volume_l, - devc->mixer.volume_r); - - case SOUND_MIXER_BASS: -- arg_to_volume_mono(*(unsigned int *)arg, -- &devc->mixer.bass); -+ if (set_volume_mono(arg, &devc->mixer.bass)) -+ return -EFAULT; - set_bass(devc, devc->mixer.bass); - return ret_vol_mono(devc->mixer.bass); - - case SOUND_MIXER_TREBLE: -- arg_to_volume_mono(*(unsigned int *)arg, -- &devc->mixer.treble); -+ if (set_volume_mono(arg, &devc->mixer.treble)) -+ return -EFAULT; - set_treble(devc, devc->mixer.treble); - return ret_vol_mono(devc->mixer.treble); - - case SOUND_MIXER_SYNTH: -- arg_to_volume_mono(*(unsigned int *)arg, -- &devc->mixer.synth); -+ if (set_volume_mono(arg, &devc->mixer.synth)) -+ return -EFAULT; - set_synth_volume(devc, devc->mixer.synth); - return ret_vol_mono(devc->mixer.synth); - -@@ -546,54 +567,67 @@ static int pss_mixer_ioctl (int dev, uns - } - else - { -+ int val, and_mask = 0, or_mask = 0; - /* - * Return parameters - */ - switch (cmdf) - { -- - case SOUND_MIXER_DEVMASK: - if (call_ad_mixer(devc, cmd, arg) == -EINVAL) -- *(int *)arg = 0; /* no mixer devices */ -- return (*(int *)arg |= SOUND_MASK_VOLUME | SOUND_MASK_BASS | SOUND_MASK_TREBLE | SOUND_MASK_SYNTH); -+ break; -+ and_mask = ~0; -+ or_mask = SOUND_MASK_VOLUME | SOUND_MASK_BASS | SOUND_MASK_TREBLE | SOUND_MASK_SYNTH; -+ break; - - case SOUND_MIXER_STEREODEVS: - if (call_ad_mixer(devc, cmd, arg) == -EINVAL) -- *(int *)arg = 0; /* no stereo devices */ -- return (*(int *)arg |= SOUND_MASK_VOLUME); -+ break; -+ and_mask = ~0; -+ or_mask = SOUND_MASK_VOLUME; -+ break; - - case SOUND_MIXER_RECMASK: - if (devc->ad_mixer_dev != NO_WSS_MIXER) - return call_ad_mixer(devc, cmd, arg); -- else -- return (*(int *)arg = 0); /* no record devices */ -+ break; - - case SOUND_MIXER_CAPS: - if (devc->ad_mixer_dev != NO_WSS_MIXER) - return call_ad_mixer(devc, cmd, arg); -- else -- return (*(int *)arg = SOUND_CAP_EXCL_INPUT); -+ or_mask = SOUND_CAP_EXCL_INPUT; -+ break; - - case SOUND_MIXER_RECSRC: - if (devc->ad_mixer_dev != NO_WSS_MIXER) - return call_ad_mixer(devc, cmd, arg); -- else -- return (*(int *)arg = 0); /* no record source */ -+ break; - - case SOUND_MIXER_VOLUME: -- return (*(int *)arg = ret_vol_stereo(devc->mixer.volume_l, devc->mixer.volume_r)); -+ or_mask = ret_vol_stereo(devc->mixer.volume_l, devc->mixer.volume_r); -+ break; - - case SOUND_MIXER_BASS: -- return (*(int *)arg = ret_vol_mono(devc->mixer.bass)); -+ or_mask = ret_vol_mono(devc->mixer.bass); -+ break; - - case SOUND_MIXER_TREBLE: -- return (*(int *)arg = ret_vol_mono(devc->mixer.treble)); -+ or_mask = ret_vol_mono(devc->mixer.treble); -+ break; - - case SOUND_MIXER_SYNTH: -- return (*(int *)arg = ret_vol_mono(devc->mixer.synth)); -+ or_mask = ret_vol_mono(devc->mixer.synth); -+ break; - default: - return -EINVAL; - } -+ if (get_user(val, (int *)arg)) -+ return -EFAULT; -+ val &= and_mask; -+ val |= or_mask; -+ if (put_user(val, (int *)arg)) -+ return -EFAULT; -+ return val; - } - } - diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0497.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0497.patch deleted file mode 100644 index 9503e9efe57b..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0497.patch +++ /dev/null @@ -1,23 +0,0 @@ -# ChangeSet -# -# fs/attr.c -# 2004/07/03 18:28:30-03:00 marcelo@logos.cnet +1 -0 -# Thomas Biege: Fix missing DAC check on sys_chown -# -# fs/attr.c -# 2004/07/03 19:28:29-03:00 marcelo@logos.cnet +1 -1 -# Add missing bracket to inode_change_ok() fix -# -diff -Nru a/fs/attr.c b.plasmaroo/fs/attr.c ---- a/fs/attr.c 2004-07-08 17:05:20 -07:00 -+++ b.plasmaroo/fs/attr.c 2004-07-08 17:05:20 -07:00 -@@ -35,7 +35,8 @@ - - /* Make sure caller can chgrp. */ - if ((ia_valid & ATTR_GID) && -- (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid) && -+ (current->fsuid != inode->i_uid || -+ (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid)) && - !capable(CAP_CHOWN)) - goto error; - diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0685.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0685.patch deleted file mode 100644 index 1beba34a334f..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.CAN-2004-0685.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -Nru a/drivers/usb/audio.c b/drivers/usb/audio.c ---- a/drivers/usb/audio.c 2004-08-08 07:41:30 -07:00 -+++ b/drivers/usb/audio.c 2004-08-08 07:41:30 -07:00 -@@ -2141,6 +2141,8 @@ - - if (cmd == SOUND_MIXER_INFO) { - mixer_info info; -+ -+ memset(&info, 0, sizeof(info)); - strncpy(info.id, "USB_AUDIO", sizeof(info.id)); - strncpy(info.name, "USB Audio Class Driver", sizeof(info.name)); - info.modify_counter = ms->modcnt; -@@ -2150,6 +2152,8 @@ - } - if (cmd == SOUND_OLD_MIXER_INFO) { - _old_mixer_info info; -+ -+ memset(&info, 0, sizeof(info)); - strncpy(info.id, "USB_AUDIO", sizeof(info.id)); - strncpy(info.name, "USB Audio Class Driver", sizeof(info.name)); - if (copy_to_user((void *)arg, &info, sizeof(info))) -diff -Nru a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c ---- a/drivers/usb/serial/io_edgeport.c 2004-08-08 07:41:30 -07:00 -+++ b/drivers/usb/serial/io_edgeport.c 2004-08-08 07:41:30 -07:00 -@@ -1913,6 +1913,7 @@ - case TIOCGICOUNT: - save_flags(flags); cli(); - cnow = edge_port->icount; -+ memset(&icount, 0, sizeof(icount)); - restore_flags(flags); - icount.cts = cnow.cts; - icount.dsr = cnow.dsr; diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.I2C_Limits.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.I2C_Limits.patch deleted file mode 100644 index af20a6fc0c2c..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.I2C_Limits.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- linux-2.4.20/drivers/i2c/i2c-dev.c 2004-06-19 03:27:30 -07:00 -+++ linux-2.4.21/drivers/i2c/i2c-dev.c 2004-06-19 03:27:30 -07:00 -@@ -254,6 +254,11 @@ - sizeof(rdwr_arg))) - return -EFAULT; - -+ /* Put an arbritrary limit on the number of messages that can -+ * be sent at once */ -+ if (rdwr_arg.nmsgs > 42) -+ return -EINVAL; -+ - rdwr_pa = (struct i2c_msg *) - kmalloc(rdwr_arg.nmsgs * sizeof(struct i2c_msg), - GFP_KERNEL); -@@ -270,6 +275,11 @@ - res = -EFAULT; - break; - } -+ /* Limit the size of the message to a sane amount */ -+ if (rdwr_pa[i].len > 8192) { -+ res = -EINVAL; -+ break; -+ } - rdwr_pa[i].buf = kmalloc(rdwr_pa[i].len, GFP_KERNEL); - if(rdwr_pa[i].buf == NULL) - { -@@ -280,10 +290,16 @@ - rdwr_arg.msgs[i].buf, - rdwr_pa[i].len)) - { -- kfree(rdwr_pa[i].buf); - res = -EFAULT; - break; - } -+ } -+ if (res < 0) { -+ int j; -+ for (j = 0; j < i; ++j) -+ kfree(rdwr_pa[j].buf); -+ kfree(rdwr_pa); -+ return res; - } - if (!res) - { diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.do_brk.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.do_brk.patch deleted file mode 100644 index fef1f1e981e2..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.do_brk.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/mm/mmap.c Fri Sep 12 06:44:06 2003 -+++ b/mm/mmap.c Thu Oct 2 01:18:19 2003 -@@ -1041,6 +1041,9 @@ - if (!len) - return addr; - -+ if ((addr + len) > TASK_SIZE || (addr + len) < addr) -+ return -EINVAL; -+ - /* - * mlock MCL_FUTURE? - */ diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.munmap.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.munmap.patch deleted file mode 100644 index e120b35b7adb..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.munmap.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -ur linux-2.4.25-rc3/mm/mremap.c linux-2.4.25-rc4/mm/mremap.c ---- linux-2.4.25-rc3/mm/mremap.c 2004-02-18 13:56:01.000000000 +0000 -+++ linux-2.4.25-rc4/mm/mremap.c 2004-02-18 13:49:08.000000000 +0000 -@@ -258,16 +258,20 @@ - if ((addr <= new_addr) && (addr+old_len) > new_addr) - goto out; - -- do_munmap(current->mm, new_addr, new_len); -+ ret = do_munmap(current->mm, new_addr, new_len); -+ if (ret && new_len) -+ goto out; - } - - /* - * Always allow a shrinking remap: that just unmaps - * the unnecessary pages.. - */ -- ret = addr; - if (old_len >= new_len) { -- do_munmap(current->mm, addr+new_len, old_len - new_len); -+ ret = do_munmap(current->mm, addr+new_len, old_len - new_len); -+ if (ret && old_len != new_len) -+ goto out; -+ ret = addr; - if (!(flags & MREMAP_FIXED) || (new_addr == addr)) - goto out; - } diff --git a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.rtc_fix.patch b/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.rtc_fix.patch deleted file mode 100644 index 2f16ffa02743..000000000000 --- a/sys-kernel/compaq-sources/files/compaq-sources-2.4.9.32.7.rtc_fix.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff -ur linux-2.4.20-wolk4.9s/drivers/char/efirtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/efirtc.c ---- linux-2.4.20-wolk4.9s/drivers/char/efirtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/efirtc.c 2004-01-05 23:47:53.000000000 +0000 -@@ -118,6 +118,7 @@ - static void - convert_from_efi_time(efi_time_t *eft, struct rtc_time *wtime) - { -+ memset(wtime, 0, sizeof(struct rtc_time)); - wtime->tm_sec = eft->second; - wtime->tm_min = eft->minute; - wtime->tm_hour = eft->hour; -diff -ur linux-2.4.20-wolk4.9s/drivers/char/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/rtc.c ---- linux-2.4.20-wolk4.9s/drivers/char/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/rtc.c 2004-01-05 23:52:43.000000000 +0000 -@@ -370,6 +370,7 @@ - * tm_min, and tm_sec values are filled in. - */ - -+ memset(&wtime, 0, sizeof(struct rtc_time)); - get_rtc_alm_time(&wtime); - break; - } -@@ -417,6 +418,7 @@ - } - case RTC_RD_TIME: /* Read the time/date from RTC */ - { -+ memset(&wtime, 0, sizeof(struct rtc_time)); - get_rtc_time(&wtime); - break; - } -diff -ur linux-2.4.20-wolk4.9s/drivers/macintosh/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/macintosh/rtc.c ---- linux-2.4.20-wolk4.9s/drivers/macintosh/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/macintosh/rtc.c 2004-01-05 23:54:15.000000000 +0000 -@@ -64,6 +64,7 @@ - case RTC_RD_TIME: - if (ppc_md.get_rtc_time) - { -+ memset(&rtc_tm, 0, sizeof(struct rtc_time)); - get_rtc_time(&rtc_tm); - - if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time))) -diff -ur linux-2.4.20-wolk4.9s/drivers/sbus/char/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/sbus/char/rtc.c ---- linux-2.4.20-wolk4.9s/drivers/sbus/char/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/sbus/char/rtc.c 2004-01-05 23:54:43.000000000 +0000 -@@ -89,6 +89,7 @@ - switch (cmd) - { - case RTCGET: -+ memset(&rtc_tm, 0, sizeof(struct rtc_time)); - get_rtc_time(&rtc_tm); - - if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time))) diff --git a/sys-kernel/compaq-sources/files/digest-compaq-sources-2.4.9.32.7-r9 b/sys-kernel/compaq-sources/files/digest-compaq-sources-2.4.9.32.7-r9 deleted file mode 100644 index 96283e409fc6..000000000000 --- a/sys-kernel/compaq-sources/files/digest-compaq-sources-2.4.9.32.7-r9 +++ /dev/null @@ -1 +0,0 @@ -MD5 8c97bc83e1cc51224afbd17c65d66dd7 kernel-source-2.4.9-32.7.alpha.rpm 25515952 diff --git a/sys-kernel/compaq-sources/metadata.xml b/sys-kernel/compaq-sources/metadata.xml deleted file mode 100644 index 8c5d806ffae8..000000000000 --- a/sys-kernel/compaq-sources/metadata.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<herd>no-herd</herd> -<maintainer> - <email>taviso@gentoo.org</email> - <name>Tavis Ormandy</name> -</maintainer> -<longdescription> -This ebuild has installed the sources for the Linux kernel shipped with the -latest version of Red Hat Linux Alpha, maintained by Compaq. - -Compaq lag behind releases from kernel.org, but their kernels are -extensively tested, and used by many thousands. This kernel will include -bugfixes and extended hardware support, and is probably the most widely -used Linux kernel on the Alpha Platform today. -</longdescription> -</pkgmetadata> |