diff options
author | Michael Marineau <marineam@gentoo.org> | 2005-02-25 04:10:37 +0000 |
---|---|---|
committer | Michael Marineau <marineam@gentoo.org> | 2005-02-25 04:10:37 +0000 |
commit | 64042c5948a2d09af1f379789c455fc7dfc02a7d (patch) | |
tree | 18f1835f71a9aa73844408986885be33655bbeff /sys-kernel | |
parent | Version bumped. (diff) | |
download | gentoo-2-64042c5948a2d09af1f379789c455fc7dfc02a7d.tar.gz gentoo-2-64042c5948a2d09af1f379789c455fc7dfc02a7d.tar.bz2 gentoo-2-64042c5948a2d09af1f379789c455fc7dfc02a7d.zip |
version bump
(Portage version: 2.0.51-r15)
Diffstat (limited to 'sys-kernel')
-rw-r--r-- | sys-kernel/ck-sources/ChangeLog | 10 | ||||
-rw-r--r-- | sys-kernel/ck-sources/Manifest | 29 | ||||
-rw-r--r-- | sys-kernel/ck-sources/ck-sources-2.6.10-r6.ebuild (renamed from sys-kernel/ck-sources/ck-sources-2.6.10-r5.ebuild) | 6 | ||||
-rw-r--r-- | sys-kernel/ck-sources/files/ck-sources-2.6.10-77666.patch | 149 | ||||
-rw-r--r-- | sys-kernel/ck-sources/files/ck-sources-2.6.10-82141.patch | 191 | ||||
-rw-r--r-- | sys-kernel/ck-sources/files/ck-sources-2.6.10-smbfs-dos-fix.patch | 141 | ||||
-rw-r--r-- | sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r6 (renamed from sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r5) | 2 |
7 files changed, 25 insertions, 503 deletions
diff --git a/sys-kernel/ck-sources/ChangeLog b/sys-kernel/ck-sources/ChangeLog index 193310053b94..112ec58e8a74 100644 --- a/sys-kernel/ck-sources/ChangeLog +++ b/sys-kernel/ck-sources/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for sys-kernel/ck-sources # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.87 2005/02/18 19:55:15 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.88 2005/02/25 04:10:37 marineam Exp $ + +*ck-sources-2.6.10-r6 (24 Feb 2005) + + 24 Feb 2005; Micheal Marineau <marineam@gentoo.org> + -files/ck-sources-2.6.10-77666.patch, -files/ck-sources-2.6.10-82141.patch, + -files/ck-sources-2.6.10-smbfs-dos-fix.patch, -ck-sources-2.6.10-r5.ebuild, + +ck-sources-2.6.10-r6.ebuild: + Version bump to ck6. Nothing big, it's just a security/bugfix release. 18 Feb 2005; <plasmaroo@gentoo.org> ck-sources-2.4.28-r3.ebuild, +files/ck-sources-2.4.28.81106.patch: diff --git a/sys-kernel/ck-sources/Manifest b/sys-kernel/ck-sources/Manifest index 1d729567d1e5..a229edbec46b 100644 --- a/sys-kernel/ck-sources/Manifest +++ b/sys-kernel/ck-sources/Manifest @@ -1,25 +1,22 @@ +MD5 07d302d5021bc0635909da0cf1bb90dc ck-sources-2.4.28-r3.ebuild 1272 +MD5 a797904a3b9614472765b2c2d656c897 ck-sources-2.6.10-r6.ebuild 833 MD5 8ab419aec04bab8a25e42595004aa04c ChangeLog 18974 MD5 7187b8c28501f454a2412c9e4a7fcf53 metadata.xml 421 -MD5 ce24bc72d595e976d3dd24ac2b2463cf ck-sources-2.6.10-r5.ebuild 901 -MD5 07d302d5021bc0635909da0cf1bb90dc ck-sources-2.4.28-r3.ebuild 1272 -MD5 039b47422c7f0f36c1012ba93ebed0ec files/digest-ck-sources-2.6.10-r5 131 -MD5 6aa8f7a7c2d55734389b53d3bcf78570 files/ck-sources-2.4.28.CAN-2004-1016.patch 2835 -MD5 c27699e9d62f7d46213bd51f87636163 files/ck-sources-2.4.28.vma.patch 8143 -MD5 79a76d3cb0029b85d4303b0019e788a8 files/ck-sources-2.4.28.compileFix.patch 2070 -MD5 77a23c26c0468c64ee5bc13c9999d79b files/ck-sources-2.6.10-82141.patch 7684 -MD5 b6cd2468a246169a6e2f969c44e3f341 files/ck-sources-2.4.28.78362.patch 10372 MD5 1d78b90e495e432432e095ee47bbc2fc files/ck-sources-2.4.28.77094.patch 452 +MD5 792fa9165e5ae65d46ee206c7f7a4fc9 files/ck-sources-2.4.28.78363.patch 788 MD5 7695b79187fcc27339ab62af1112ec11 files/ck-sources-2.6.10-74070.patch 525 -MD5 1efe4024e443e60db5fd9b21b22fabd2 files/ck-sources-2.4.28.77666.patch 1724 +MD5 8c35751caf824a9dacb02e80d6189b2e files/ck-sources-2.4.28.CAN-2004-1137.patch 1764 MD5 eb75782ba6714f1c78b956e1497816f3 files/ck-sources-81106.patch 826 +MD5 001b0a631c9fc28133013a1f8f78f74c files/ck-sources-2.6.10-drm-dos-fix.patch 8458 +MD5 6aa8f7a7c2d55734389b53d3bcf78570 files/ck-sources-2.4.28.CAN-2004-1016.patch 2835 MD5 6cf860a301930c8cac126ab0c4d859d4 files/ck-sources-2.4.28.brk-locked.patch 8202 -MD5 757ee1239c3f14645ccea3640d551e11 files/ck-sources-2.4.28.CAN-2004-1056.patch 11249 -MD5 792fa9165e5ae65d46ee206c7f7a4fc9 files/ck-sources-2.4.28.78363.patch 788 MD5 d1ccc2047be533c992f67270a150a210 files/ck-sources-2.4.28.cmdlineLeak.patch 388 -MD5 8c35751caf824a9dacb02e80d6189b2e files/ck-sources-2.4.28.CAN-2004-1137.patch 1764 -MD5 001b0a631c9fc28133013a1f8f78f74c files/ck-sources-2.6.10-drm-dos-fix.patch 8458 -MD5 0286d7c662e35f00f8d5b8e25b58f23a files/ck-sources-2.6.10-smbfs-dos-fix.patch 5325 -MD5 0f93b46ae17cbd0fc9b4d1cf5d704296 files/ck-sources-2.4.28.81106.patch 2243 -MD5 f859ca498ab3a824778abf94124f955c files/ck-sources-2.6.10-77666.patch 4556 +MD5 c27699e9d62f7d46213bd51f87636163 files/ck-sources-2.4.28.vma.patch 8143 MD5 ea61cd84e266e1ddfa963d27e9c1ba99 files/digest-ck-sources-2.4.28-r3 210 +MD5 79a76d3cb0029b85d4303b0019e788a8 files/ck-sources-2.4.28.compileFix.patch 2070 MD5 b9a94233e1457787352e5f85e3e3582d files/ck-sources-2.4.28.binfmt_a.out.patch 2009 +MD5 0f93b46ae17cbd0fc9b4d1cf5d704296 files/ck-sources-2.4.28.81106.patch 2243 +MD5 757ee1239c3f14645ccea3640d551e11 files/ck-sources-2.4.28.CAN-2004-1056.patch 11249 +MD5 b6cd2468a246169a6e2f969c44e3f341 files/ck-sources-2.4.28.78362.patch 10372 +MD5 3b421fc7396318617bece4ec7a2b6e99 files/digest-ck-sources-2.6.10-r6 131 +MD5 1efe4024e443e60db5fd9b21b22fabd2 files/ck-sources-2.4.28.77666.patch 1724 diff --git a/sys-kernel/ck-sources/ck-sources-2.6.10-r5.ebuild b/sys-kernel/ck-sources/ck-sources-2.6.10-r6.ebuild index 1306b086af21..7cc0c17e2258 100644 --- a/sys-kernel/ck-sources/ck-sources-2.6.10-r5.ebuild +++ b/sys-kernel/ck-sources/ck-sources-2.6.10-r6.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-kernel/ck-sources/ck-sources-2.6.10-r5.ebuild,v 1.2 2005/02/15 21:50:55 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.6.10-r6.ebuild,v 1.1 2005/02/25 04:10:37 marineam Exp $ K_PREPATCHED="yes" UNIPATCH_STRICTORDER="yes" @@ -15,10 +15,8 @@ CK_PATCH="patch-${KV_FULL}.bz2" UNIPATCH_LIST=" ${DISTDIR}/${CK_PATCH} ${FILESDIR}/${P}-drm-dos-fix.patch - ${FILESDIR}/${P}-smbfs-dos-fix.patch ${FILESDIR}/${P}-74070.patch - ${FILESDIR}/${PN}-81106.patch - ${FILESDIR}/${P}-82141.patch" + ${FILESDIR}/${PN}-81106.patch" IUSE="" DESCRIPTION="Full sources for the Stock Linux kernel and Con Kolivas's high performance patchset" diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.10-77666.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.10-77666.patch deleted file mode 100644 index 5855606c106b..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.10-77666.patch +++ /dev/null @@ -1,149 +0,0 @@ -# <plasmaroo> Bug #77666; this is a ck-sources modified version; attID #48582 -# minus hunk 2. -# -# ChangeSet #3 -# 2005/01/12 08:09:20-08:00 torvalds@ppc970.osdl.org -# Handle two threads both trying to expand their stack simultaneously. -# -# We had all the locking right, but we didn't check whether one of the -# threads now no longer needed to expand, so we could incorrectly _shrink_ -# the stack in the other thread instead (not only causing segfaults, but -# since we didn't do a proper unmap, we'd possibly leak pages too). -# -# So re-check the need for expand after getting the lock. -# -# Noticed by Paul Starzetz. -# -# ChangeSet #2 -# 2005/01/10 11:23:42-08:00 torvalds@ppc970.osdl.org -# Clean up stack growth checks and move them into a common function. -# -# The grows-up and grows-down cases had all the same issues, but -# differered in the details. Additionlly, historical evolution of -# the tests had caused the result to be pretty unreadable with some -# rather long and complex conditionals. -# -# Fix it all up in a more readable helper function. -# -# This also adds the missing RLIMIT_MEMLOCK test. -# -# ChangeSet #1 -# 2005/01/11 07:40:07-08:00 chrisw@osdl.org -# [PATCH] acct_stack_growth nitpicks -# -# - allow CAP_IPC_LOCK to override mlock rlimit during stack expansion as -# in all other cases -# -# Signed-off-by: Chris Wright <chrisw@osdl.org> -# Signed-off-by: Linus Torvalds <torvalds@osdl.org> -# -# mm/mmap.c -# 2005/01/10 19:34:05-08:00 chrisw@osdl.org +1 -1 -# acct_stack_growth nitpicks -# -diff -urNp linux-2.6.10/mm/mmap.c linux-2.6.10.plasmaroo/mm/mmap.c ---- linux-2.6.10/mm/mmap.c 2004-12-24 21:35:00.000000000 +0000 -+++ linux-2.6.10.plasmaroo/mm/mmap.c 2005-01-15 21:49:26.000000000 +0000 -@@ -1319,13 +1319,57 @@ out: - return prev ? prev->vm_next : vma; - } - -+/* -+ * Verify that the stack growth is acceptable and -+ * update accounting. This is shared with both the -+ * grow-up and grow-down cases. -+ */ -+static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, unsigned long grow) -+{ -+ struct mm_struct *mm = vma->vm_mm; -+ struct rlimit *rlim = current->signal->rlim; -+ -+ /* address space limit tests */ -+ rlim = current->signal->rlim; -+ if (mm->total_vm + grow > rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT) -+ return -ENOMEM; -+ -+ /* Stack limit test */ -+ if (size > rlim[RLIMIT_STACK].rlim_cur) -+ return -ENOMEM; -+ -+ /* mlock limit tests */ -+ if (vma->vm_flags & VM_LOCKED) { -+ unsigned long locked; -+ unsigned long limit; -+ locked = mm->locked_vm + grow; -+ limit = rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT; -+ if (locked > limit && !capable(CAP_IPC_LOCK)) -+ return -ENOMEM; -+ } -+ -+ /* -+ * Overcommit.. This must be the final test, as it will -+ * update security statistics. -+ */ -+ if (security_vm_enough_memory(grow)) -+ return -ENOMEM; -+ -+ /* Ok, everything looks good - let it rip */ -+ mm->total_vm += grow; -+ if (vma->vm_flags & VM_LOCKED) -+ mm->locked_vm += grow; -+ __vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow); -+ return 0; -+} -+ - #ifdef CONFIG_STACK_GROWSUP - /* - * vma is the first one with address > vma->vm_end. Have to extend vma. - */ - int expand_stack(struct vm_area_struct * vma, unsigned long address) - { -- unsigned long grow; -+ int error; - - if (!(vma->vm_flags & VM_GROWSUP)) - return -EFAULT; -@@ -1407,29 +1448,23 @@ int expand_stack(struct vm_area_struct * - * anon_vma lock to serialize against concurrent expand_stacks. - */ - address &= PAGE_MASK; -- grow = (vma->vm_start - address) >> PAGE_SHIFT; -+ error = 0; - -- /* Overcommit.. */ -- if (security_vm_enough_memory(grow)) { -- anon_vma_unlock(vma); -- return -ENOMEM; -- } -- -- if (vma->vm_end - address > current->signal->rlim[RLIMIT_STACK].rlim_cur || -- ((vma->vm_mm->total_vm + grow) << PAGE_SHIFT) > -- current->signal->rlim[RLIMIT_AS].rlim_cur) { -- anon_vma_unlock(vma); -- vm_unacct_memory(grow); -- return -ENOMEM; -+ /* Somebody else might have raced and expanded it already */ -+ if (address < vma->vm_start) { -+ unsigned long size, grow; -+ -+ size = vma->vm_end - address; -+ grow = (vma->vm_start - address) >> PAGE_SHIFT; -+ -+ error = acct_stack_growth(vma, size, grow); -+ if (!error) { -+ vma->vm_start = address; -+ vma->vm_pgoff -= grow; -+ } - } -- vma->vm_start = address; -- vma->vm_pgoff -= grow; -- vma->vm_mm->total_vm += grow; -- if (vma->vm_flags & VM_LOCKED) -- vma->vm_mm->locked_vm += grow; -- __vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, grow); - anon_vma_unlock(vma); -- return 0; -+ return error; - } - - struct vm_area_struct * diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.10-82141.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.10-82141.patch deleted file mode 100644 index b4a02f7871fb..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.10-82141.patch +++ /dev/null @@ -1,191 +0,0 @@ -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2005/02/02 17:41:06-08:00 guninski@guninski.com -# [PATCH] Fix sign checks in copy_from_read_buf() -# -# Fix signedness and remove the now unnecessary cast. -# -# Acked-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> -# Signed-off-by: Linus Torvalds <torvalds@osdl.org> -# -# drivers/char/n_tty.c -# 2005/01/30 07:56:05-08:00 guninski@guninski.com +2 -2 -# Fix sign checks in copy_from_read_buf() -# -# ChangeSet -# 2005/02/02 17:42:38-08:00 guninski@guninski.com -# [PATCH] Fix signed compare in fs/proc/generic.c::proc_file_read() -# -# Acked-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> -# Signed-off-by: Linus Torvalds <torvalds@osdl.org> -# -# fs/proc/generic.c -# 2005/01/30 07:58:00-08:00 guninski@guninski.com +1 -1 -# Fix signed compare in fs/proc/generic.c::proc_file_read() -# -# ChangeSet -# 2005/02/02 17:45:11-08:00 guninski@guninski.com -# [PATCH] reiserfs: use proper 64-bit clean types -# -# reiserfs_file_write() casts its (size_t) count parameter to int, which can become -# a problem on 64-bit architectures -# -# This attempts to fix this by changing the variables dealing with count -# and offset and the "min_t" comparisons to use "size_t" through-out. -# -# Acked-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> -# Signed-off-by: Linus Torvalds <torvalds@osdl.org> -# -# fs/reiserfs/file.c -# 2005/01/26 07:28:12-08:00 guninski@guninski.com +11 -12 -# reiserfs: use proper 64-bit clean types -# -# ChangeSet -# 2005/02/08 07:59:56-08:00 torvalds@ppc970.osdl.org -# Fix ATM copy-to-user usage. -# -# More of the Guninski "copy_to_user() takes a size_t" series. -# -# net/atm/addr.c -# 2005/02/08 07:59:48-08:00 torvalds@ppc970.osdl.org +1 -1 -# Fix ATM copy-to-user usage. -# -# More of the Guninski "copy_to_user() takes a size_t" series. -# -# net/atm/addr.h -# 2005/02/08 07:59:48-08:00 torvalds@ppc970.osdl.org +1 -1 -# Fix ATM copy-to-user usage. -# -# More of the Guninski "copy_to_user() takes a size_t" series. -# -diff -Nru a/drivers/char/n_tty.c b/drivers/char/n_tty.c ---- a/drivers/char/n_tty.c 2005-02-15 11:56:06 -08:00 -+++ b/drivers/char/n_tty.c 2005-02-15 11:56:06 -08:00 -@@ -1143,13 +1143,13 @@ - - { - int retval; -- ssize_t n; -+ size_t n; - unsigned long flags; - - retval = 0; - spin_lock_irqsave(&tty->read_lock, flags); - n = min(tty->read_cnt, N_TTY_BUF_SIZE - tty->read_tail); -- n = min((ssize_t)*nr, n); -+ n = min(*nr, n); - spin_unlock_irqrestore(&tty->read_lock, flags); - if (n) { - mb(); -diff -Nru a/fs/proc/generic.c b/fs/proc/generic.c ---- a/fs/proc/generic.c 2005-02-15 11:55:35 -08:00 -+++ b/fs/proc/generic.c 2005-02-15 11:55:35 -08:00 -@@ -60,7 +60,7 @@ - return -ENOMEM; - - while ((nbytes > 0) && !eof) { -- count = min_t(ssize_t, PROC_BLOCK_SIZE, nbytes); -+ count = min_t(size_t, PROC_BLOCK_SIZE, nbytes); - - start = NULL; - if (dp->get_info) { -diff -Nru a/fs/reiserfs/file.c b/fs/reiserfs/file.c ---- a/fs/reiserfs/file.c 2005-02-15 11:56:07 -08:00 -+++ b/fs/reiserfs/file.c 2005-02-15 11:56:07 -08:00 -@@ -588,7 +588,7 @@ - - /* Unlock pages prepared by reiserfs_prepare_file_region_for_write */ - void reiserfs_unprepare_pages(struct page **prepared_pages, /* list of locked pages */ -- int num_pages /* amount of pages */) { -+ size_t num_pages /* amount of pages */) { - int i; // loop counter - - for (i=0; i < num_pages ; i++) { -@@ -619,7 +619,7 @@ - int offset; // offset in page - - for ( i = 0, offset = (pos & (PAGE_CACHE_SIZE-1)); i < num_pages ; i++,offset=0) { -- int count = min_t(int,PAGE_CACHE_SIZE-offset,write_bytes); // How much of bytes to write to this page -+ size_t count = min_t(size_t,PAGE_CACHE_SIZE-offset,write_bytes); // How much of bytes to write to this page - struct page *page=prepared_pages[i]; // Current page we process. - - fault_in_pages_readable( buf, count); -@@ -718,8 +718,8 @@ - struct reiserfs_transaction_handle *th, - struct inode *inode, - loff_t pos, /* Writing position offset */ -- int num_pages, /* Number of pages to write */ -- int write_bytes, /* number of bytes to write */ -+ size_t num_pages, /* Number of pages to write */ -+ size_t write_bytes, /* number of bytes to write */ - struct page **prepared_pages /* list of pages */ - ) - { -@@ -854,9 +854,9 @@ - static int reiserfs_prepare_file_region_for_write( - struct inode *inode /* Inode of the file */, - loff_t pos, /* position in the file */ -- int num_pages, /* number of pages to -+ size_t num_pages, /* number of pages to - prepare */ -- int write_bytes, /* Amount of bytes to be -+ size_t write_bytes, /* Amount of bytes to be - overwritten from - @pos */ - struct page **prepared_pages /* pointer to array -@@ -1252,10 +1252,9 @@ - while ( count > 0) { - /* This is the main loop in which we running until some error occures - or until we write all of the data. */ -- int num_pages;/* amount of pages we are going to write this iteration */ -- int write_bytes; /* amount of bytes to write during this iteration */ -- int blocks_to_allocate; /* how much blocks we need to allocate for -- this iteration */ -+ size_t num_pages;/* amount of pages we are going to write this iteration */ -+ size_t write_bytes; /* amount of bytes to write during this iteration */ -+ size_t blocks_to_allocate; /* how much blocks we need to allocate for this iteration */ - - /* (pos & (PAGE_CACHE_SIZE-1)) is an idiom for offset into a page of pos*/ - num_pages = !!((pos+count) & (PAGE_CACHE_SIZE - 1)) + /* round up partial -@@ -1269,7 +1268,7 @@ - /* If we were asked to write more data than we want to or if there - is not that much space, then we shorten amount of data to write - for this iteration. */ -- num_pages = min_t(int, REISERFS_WRITE_PAGES_AT_A_TIME, reiserfs_can_fit_pages(inode->i_sb)); -+ num_pages = min_t(size_t, REISERFS_WRITE_PAGES_AT_A_TIME, reiserfs_can_fit_pages(inode->i_sb)); - /* Also we should not forget to set size in bytes accordingly */ - write_bytes = (num_pages << PAGE_CACHE_SHIFT) - - (pos & (PAGE_CACHE_SIZE-1)); -@@ -1295,7 +1294,7 @@ - // But overwriting files on absolutelly full volumes would not - // be very efficient. Well, people are not supposed to fill - // 100% of disk space anyway. -- write_bytes = min_t(int, count, inode->i_sb->s_blocksize - (pos & (inode->i_sb->s_blocksize - 1))); -+ write_bytes = min_t(size_t, count, inode->i_sb->s_blocksize - (pos & (inode->i_sb->s_blocksize - 1))); - num_pages = 1; - // No blocks were claimed before, so do it now. - reiserfs_claim_blocks_to_be_allocated(inode->i_sb, 1 << (PAGE_CACHE_SHIFT - inode->i_blkbits)); -diff -Nru a/net/atm/addr.c b/net/atm/addr.c ---- a/net/atm/addr.c 2005-02-15 11:56:16 -08:00 -+++ b/net/atm/addr.c 2005-02-15 11:56:16 -08:00 -@@ -114,7 +114,7 @@ - } - - --int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,int size) -+int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,size_t size) - { - unsigned long flags; - struct atm_dev_addr *walk; -diff -Nru a/net/atm/addr.h b/net/atm/addr.h ---- a/net/atm/addr.h 2005-02-15 11:56:16 -08:00 -+++ b/net/atm/addr.h 2005-02-15 11:56:16 -08:00 -@@ -13,6 +13,6 @@ - void atm_reset_addr(struct atm_dev *dev); - int atm_add_addr(struct atm_dev *dev,struct sockaddr_atmsvc *addr); - int atm_del_addr(struct atm_dev *dev,struct sockaddr_atmsvc *addr); --int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,int size); -+int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,size_t size); - - #endif diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.10-smbfs-dos-fix.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.10-smbfs-dos-fix.patch deleted file mode 100644 index 0a4d0539f2d8..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.10-smbfs-dos-fix.patch +++ /dev/null @@ -1,141 +0,0 @@ -From: Chuck Ebbert <76306.1226@compuserve.com> -Subject: [PATCH] SMB security fixes for 2.6.9 -To: Alan Cox <alan@lxorguk.ukuu.org.uk> -Cc: linux-kernel <linux-kernel@vger.kernel.org> -Message-ID: <200411222138_MC3-1-8F38-414@compuserve.com> - - The SMB patch in 2.6.9-ac10 is broken. When a reply is received and it -contains no data (only parms), the data_offset is zero. Since no data will -be copied, zero offset is perfectly valid. This patch, based on the one in --ac, works for me. I also cleaned up the message printing (%u vs. %d for -unsigned), added unlikely() where appropriate, and removed some extra code. - -Comments welcome. Like I said, at least I can use SMB servers now. -With the original patch very bad things happened, like trying to save -files from a text editor truncated them to 0 bytes, followed by editor -freezing for many seconds then asking for a new name to save the file as. - -Rediff. - -diff -X dontdiff -urNp linux-2.6.10/fs/smbfs/proc.c linux-dsd/fs/smbfs/proc.c ---- linux-2.6.10/fs/smbfs/proc.c 2004-12-24 21:34:00.000000000 +0000 -+++ linux-dsd/fs/smbfs/proc.c 2005-01-13 22:58:21.681636192 +0000 -@@ -1427,9 +1427,9 @@ smb_proc_readX_data(struct smb_request * - * So we must first calculate the amount of padding used by the server. - */ - data_off -= hdrlen; -- if (data_off > SMB_READX_MAX_PAD) { -- PARANOIA("offset is larger than max pad!\n"); -- PARANOIA("%d > %d\n", data_off, SMB_READX_MAX_PAD); -+ if (data_off > SMB_READX_MAX_PAD || data_off < 0) { -+ PARANOIA("offset is larger than SMB_READX_MAX_PAD or negative!\n"); -+ PARANOIA("%d > %d || %d < 0\n", data_off, SMB_READX_MAX_PAD, data_off); - req->rq_rlen = req->rq_bufsize + 1; - return; - } -diff -X dontdiff -urNp linux-2.6.10/fs/smbfs/request.c linux-dsd/fs/smbfs/request.c ---- linux-2.6.10/fs/smbfs/request.c 2004-12-24 21:35:40.000000000 +0000 -+++ linux-dsd/fs/smbfs/request.c 2005-01-13 23:03:51.295527264 +0000 -@@ -588,8 +588,18 @@ static int smb_recv_trans2(struct smb_sb - data_count = WVAL(inbuf, smb_drcnt); - - /* Modify offset for the split header/buffer we use */ -- data_offset -= hdrlen; -- parm_offset -= hdrlen; -+ if (data_count || data_offset) { -+ if (unlikely(data_offset < hdrlen)) -+ goto out_bad_data; -+ else -+ data_offset -= hdrlen; -+ } -+ if (parm_count || parm_offset) { -+ if (unlikely(parm_offset < hdrlen)) -+ goto out_bad_parm; -+ else -+ parm_offset -= hdrlen; -+ } - - if (parm_count == parm_tot && data_count == data_tot) { - /* -@@ -600,18 +610,22 @@ static int smb_recv_trans2(struct smb_sb - * response that fits. - */ - VERBOSE("single trans2 response " -- "dcnt=%d, pcnt=%d, doff=%d, poff=%d\n", -+ "dcnt=%u, pcnt=%u, doff=%u, poff=%u\n", - data_count, parm_count, - data_offset, parm_offset); - req->rq_ldata = data_count; - req->rq_lparm = parm_count; - req->rq_data = req->rq_buffer + data_offset; - req->rq_parm = req->rq_buffer + parm_offset; -+ if (unlikely(parm_offset + parm_count > req->rq_rlen)) -+ goto out_bad_parm; -+ if (unlikely(data_offset + data_count > req->rq_rlen)) -+ goto out_bad_data; - return 0; - } - - VERBOSE("multi trans2 response " -- "frag=%d, dcnt=%d, pcnt=%d, doff=%d, poff=%d\n", -+ "frag=%d, dcnt=%u, pcnt=%u, doff=%u, poff=%u\n", - req->rq_fragment, - data_count, parm_count, - data_offset, parm_offset); -@@ -638,13 +652,15 @@ static int smb_recv_trans2(struct smb_sb - - req->rq_parm = req->rq_trans2buffer; - req->rq_data = req->rq_trans2buffer + parm_tot; -- } else if (req->rq_total_data < data_tot || -- req->rq_total_parm < parm_tot) -+ } else if (unlikely(req->rq_total_data < data_tot || -+ req->rq_total_parm < parm_tot)) - goto out_data_grew; - -- if (parm_disp + parm_count > req->rq_total_parm) -+ if (unlikely(parm_disp + parm_count > req->rq_total_parm || -+ parm_offset + parm_count > req->rq_rlen)) - goto out_bad_parm; -- if (data_disp + data_count > req->rq_total_data) -+ if (unlikely(data_disp + data_count > req->rq_total_data || -+ data_offset + data_count > req->rq_rlen)) - goto out_bad_data; - - inbuf = req->rq_buffer; -@@ -666,10 +682,9 @@ static int smb_recv_trans2(struct smb_sb - return 1; - - out_too_long: -- printk(KERN_ERR "smb_trans2: data/param too long, data=%d, parm=%d\n", -+ printk(KERN_ERR "smb_trans2: data/param too long, data=%u, parm=%u\n", - data_tot, parm_tot); -- req->rq_errno = -EIO; -- goto out; -+ goto out_EIO; - out_no_mem: - printk(KERN_ERR "smb_trans2: couldn't allocate data area of %d bytes\n", - req->rq_trans2bufsize); -@@ -677,16 +692,15 @@ out_no_mem: - goto out; - out_data_grew: - printk(KERN_ERR "smb_trans2: data/params grew!\n"); -- req->rq_errno = -EIO; -- goto out; -+ goto out_EIO; - out_bad_parm: -- printk(KERN_ERR "smb_trans2: invalid parms, disp=%d, cnt=%d, tot=%d\n", -- parm_disp, parm_count, parm_tot); -- req->rq_errno = -EIO; -- goto out; -+ printk(KERN_ERR "smb_trans2: invalid parms, disp=%u, cnt=%u, tot=%u, ofs=%u\n", -+ parm_disp, parm_count, parm_tot, parm_offset); -+ goto out_EIO; - out_bad_data: -- printk(KERN_ERR "smb_trans2: invalid data, disp=%d, cnt=%d, tot=%d\n", -- data_disp, data_count, data_tot); -+ printk(KERN_ERR "smb_trans2: invalid data, disp=%u, cnt=%u, tot=%u, ofs=%u\n", -+ data_disp, data_count, data_tot, data_offset); -+out_EIO: - req->rq_errno = -EIO; - out: - return req->rq_errno; diff --git a/sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r5 b/sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r6 index 85ee2ecc99c0..028ea1215ee0 100644 --- a/sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r5 +++ b/sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r6 @@ -1,2 +1,2 @@ MD5 cffcd2919d9c8ef793ce1ac07a440eda linux-2.6.10.tar.bz2 36533484 -MD5 78e47c160382350a881735883964bd31 patch-2.6.10-ck5.bz2 41801 +MD5 42685e2911ba0f0f1df301b86f23810f patch-2.6.10-ck6.bz2 67095 |