diff options
author | Daniel Drake <dsd@gentoo.org> | 2004-12-25 15:59:15 +0000 |
---|---|---|
committer | Daniel Drake <dsd@gentoo.org> | 2004-12-25 15:59:15 +0000 |
commit | 632c41a58e2a4647320cefecc99aeca0cd060ca1 (patch) | |
tree | 4c9eeb5cd6a19a59f64a76e8c0bef70573db031c /sys-kernel/ck-sources | |
parent | Pull in correct version. Closes #75618. (Manifest recommit) (diff) | |
download | gentoo-2-632c41a58e2a4647320cefecc99aeca0cd060ca1.tar.gz gentoo-2-632c41a58e2a4647320cefecc99aeca0cd060ca1.tar.bz2 gentoo-2-632c41a58e2a4647320cefecc99aeca0cd060ca1.zip |
Version bump
Diffstat (limited to 'sys-kernel/ck-sources')
17 files changed, 28 insertions, 870 deletions
diff --git a/sys-kernel/ck-sources/ChangeLog b/sys-kernel/ck-sources/ChangeLog index 089c5a55d0f4..e92afbe49451 100644 --- a/sys-kernel/ck-sources/ChangeLog +++ b/sys-kernel/ck-sources/ChangeLog @@ -1,6 +1,24 @@ # ChangeLog for sys-kernel/ck-sources # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.76 2004/12/25 15:30:23 dsd Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.77 2004/12/25 15:59:15 dsd Exp $ + +*ck-sources-2.6.10-r1 (25 Dec 2004) + + 25 Dec 2004; Daniel Drake <dsd@gentoo.org> + +files/ck-sources-2.6.10.CAN-2004-1056.patch, + -files/ck-sources-2.6.9.AF_UNIX.SELinux.patch, + -files/ck-sources-2.6.9.AF_UNIX.patch, + -files/ck-sources-2.6.9.CAN-2004-1016.patch, + -files/ck-sources-2.6.9.CAN-2004-1056.patch, + -files/ck-sources-2.6.9.CAN-2004-1137.patch, + -files/ck-sources-2.6.9.CAN-2004-1151.patch, + -files/ck-sources-2.6.9.binfmt_a.out.patch, + -files/ck-sources-2.6.9.binfmt_elf.patch, + -files/ck-sources-2.6.9.shmLocking.patch, + -files/ck-sources-2.6.9.smbfs.patch, -files/ck-sources-2.6.9.vma.patch, + -files/ck-sources.AF_UNIX.patch, +ck-sources-2.6.10-r1.ebuild, + -ck-sources-2.6.9-r3.ebuild: + Version bump *ck-sources-2.4.28-r1 (25 Dec 2004) diff --git a/sys-kernel/ck-sources/Manifest b/sys-kernel/ck-sources/Manifest index 1259deff4fd4..9eab00d62b58 100644 --- a/sys-kernel/ck-sources/Manifest +++ b/sys-kernel/ck-sources/Manifest @@ -1,25 +1,14 @@ MD5 b6e2f5aa9770de9a81272db5aa39f662 ck-sources-2.4.28-r1.ebuild 1089 -MD5 da6a8b2e8485d25070da95f62bcf9282 ck-sources-2.6.9-r3.ebuild 1057 -MD5 98e043bf40d524baf369f298410d7d3f ChangeLog 15990 +MD5 463392a63d05a61dc5a661c5fc1d5aba ck-sources-2.6.10-r1.ebuild 729 +MD5 ab264f858ff3d244f2f8fb296d1fb892 ChangeLog 16718 MD5 7187b8c28501f454a2412c9e4a7fcf53 metadata.xml 421 -MD5 6bcdd0bb63e2db559a5c6465c73a7f89 files/ck-sources-2.6.9.CAN-2004-1151.patch 1143 -MD5 53fe3d26f6fc45487d69895fc07770cb files/ck-sources-2.6.9.binfmt_elf.patch 2350 -MD5 8812f60b8d02b0b3b4c46a3311ddd851 files/ck-sources-2.6.9.smbfs.patch 2662 -MD5 001b0a631c9fc28133013a1f8f78f74c files/ck-sources-2.6.9.CAN-2004-1056.patch 8458 MD5 8c35751caf824a9dacb02e80d6189b2e files/ck-sources-2.4.28.CAN-2004-1137.patch 1764 -MD5 b0a1f80aff51d6601e8924329023b241 files/ck-sources.AF_UNIX.patch 515 +MD5 001b0a631c9fc28133013a1f8f78f74c files/ck-sources-2.6.10.CAN-2004-1056.patch 8458 MD5 6aa8f7a7c2d55734389b53d3bcf78570 files/ck-sources-2.4.28.CAN-2004-1016.patch 2835 -MD5 530630d25910e6bd9376b63ea099655f files/ck-sources-2.6.9.AF_UNIX.patch 469 -MD5 42b42f2a4f260fad2fef264b82aff2ae files/ck-sources-2.6.9.vma.patch 8952 MD5 d1ccc2047be533c992f67270a150a210 files/ck-sources-2.4.28.cmdlineLeak.patch 388 -MD5 025c80544aef14ce3a49024d791c5596 files/ck-sources-2.6.9.binfmt_a.out.patch 1763 -MD5 7f0579764a55a43256ce069632e0373e files/digest-ck-sources-2.6.9-r3 129 MD5 c27699e9d62f7d46213bd51f87636163 files/ck-sources-2.4.28.vma.patch 8143 MD5 55eb417b53b98efb6e89557bbf35e51b files/digest-ck-sources-2.4.28-r1 214 MD5 79a76d3cb0029b85d4303b0019e788a8 files/ck-sources-2.4.28.compileFix.patch 2070 -MD5 4d656fa3f3a47df751c0d78b64ed8353 files/ck-sources-2.6.9.AF_UNIX.SELinux.patch 1761 -MD5 f211ff52010dfc1d94d2dcfc06636fd9 files/ck-sources-2.6.9.shmLocking.patch 1757 MD5 b9a94233e1457787352e5f85e3e3582d files/ck-sources-2.4.28.binfmt_a.out.patch 2009 MD5 757ee1239c3f14645ccea3640d551e11 files/ck-sources-2.4.28.CAN-2004-1056.patch 11249 -MD5 09e9f1cad6f2f28fe81682cbad8e3011 files/ck-sources-2.6.9.CAN-2004-1137.patch 2551 -MD5 6aa8f7a7c2d55734389b53d3bcf78570 files/ck-sources-2.6.9.CAN-2004-1016.patch 2835 +MD5 b16a5ef5d8bdaf351a70ca61aa0e4bc2 files/digest-ck-sources-2.6.10-r1 131 diff --git a/sys-kernel/ck-sources/ck-sources-2.6.9-r3.ebuild b/sys-kernel/ck-sources/ck-sources-2.6.10-r1.ebuild index c8b93b242c50..93a07f14c466 100644 --- a/sys-kernel/ck-sources/ck-sources-2.6.9-r3.ebuild +++ b/sys-kernel/ck-sources/ck-sources-2.6.10-r1.ebuild @@ -1,18 +1,9 @@ # Copyright 1999-2004 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.9-r3.ebuild,v 1.9 2004/12/20 20:20:39 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.6.10-r1.ebuild,v 1.1 2004/12/25 15:59:15 dsd Exp $ UNIPATCH_LIST="${DISTDIR}/patch-${KV}.bz2 - ${FILESDIR}/${P}.binfmt_elf.patch - ${FILESDIR}/${P}.binfmt_a.out.patch - ${FILESDIR}/${P}.AF_UNIX.patch - ${FILESDIR}/${P}.AF_UNIX.SELinux.patch - ${FILESDIR}/${P}.vma.patch - ${FILESDIR}/${P}.CAN-2004-1016.patch - ${FILESDIR}/${P}.CAN-2004-1056.patch - ${FILESDIR}/${P}.CAN-2004-1137.patch - ${FILESDIR}/${P}.CAN-2004-1151.patch - ${FILESDIR}/${P}.shmLocking.patch" + ${FILESDIR}/${P}.CAN-2004-1056.patch" K_PREPATCHED="yes" UNIPATCH_STRICTORDER="yes" @@ -27,4 +18,4 @@ DESCRIPTION="Full sources for the Stock Linux kernel and Con Kolivas's high perf HOMEPAGE="http://members.optusnet.com.au/ckolivas/kernel/" SRC_URI="${KERNEL_URI} http://ck.kolivas.org/patches/2.6/${KV/-ck*/}/${KV}/patch-${KV}.bz2" -KEYWORDS="~x86 ~amd64" +KEYWORDS="~x86" diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1056.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.10.CAN-2004-1056.patch index cd8d7af324c2..cd8d7af324c2 100644 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1056.patch +++ b/sys-kernel/ck-sources/files/ck-sources-2.6.10.CAN-2004-1056.patch diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.AF_UNIX.SELinux.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.AF_UNIX.SELinux.patch deleted file mode 100644 index dbb8b2329a28..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.AF_UNIX.SELinux.patch +++ /dev/null @@ -1,61 +0,0 @@ ---- a/net/unix/af_unix.c 2004-10-18 22:54:37.000000000 +0100 -+++ b/net/unix/af_unix.c 2004-12-19 18:33:12.000000000 +0000 -@@ -477,6 +477,8 @@ - struct msghdr *, size_t, int); - static int unix_dgram_connect(struct socket *, struct sockaddr *, - int, int); -+static int unix_seqpacket_sendmsg(struct kiocb *, struct socket *, -+ struct msghdr *, size_t); - - static struct proto_ops unix_stream_ops = { - .family = PF_UNIX, -@@ -535,7 +537,7 @@ - .shutdown = unix_shutdown, - .setsockopt = sock_no_setsockopt, - .getsockopt = sock_no_getsockopt, -- .sendmsg = unix_dgram_sendmsg, -+ .sendmsg = unix_seqpacket_sendmsg, - .recvmsg = unix_dgram_recvmsg, - .mmap = sock_no_mmap, - .sendpage = sock_no_sendpage, -@@ -1365,9 +1367,11 @@ - if (other->sk_shutdown & RCV_SHUTDOWN) - goto out_unlock; - -- err = security_unix_may_send(sk->sk_socket, other->sk_socket); -- if (err) -- goto out_unlock; -+ if (sk->sk_type != SOCK_SEQPACKET) { -+ err = security_unix_may_send(sk->sk_socket, other->sk_socket); -+ if (err) -+ goto out_unlock; -+ } - - if (unix_peer(other) != sk && - (skb_queue_len(&other->sk_receive_queue) > -@@ -1517,6 +1521,25 @@ - return sent ? : err; - } - -+static int unix_seqpacket_sendmsg(struct kiocb *kiocb, struct socket *sock, -+ struct msghdr *msg, size_t len) -+{ -+ int err; -+ struct sock *sk = sock->sk; -+ -+ err = sock_error(sk); -+ if (err) -+ return err; -+ -+ if (sk->sk_state != TCP_ESTABLISHED) -+ return -ENOTCONN; -+ -+ if (msg->msg_namelen) -+ msg->msg_namelen = 0; -+ -+ return unix_dgram_sendmsg(kiocb, sock, msg, len); -+} -+ - static void unix_copy_addr(struct msghdr *msg, struct sock *sk) - { - struct unix_sock *u = unix_sk(sk); diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.AF_UNIX.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.AF_UNIX.patch deleted file mode 100644 index a95e94fd9362..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.AF_UNIX.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- linux-2.6.9/net/unix/af_unix.c 2004-11-24 08:23:21 -08:00 -+++ linux-2.6.9.plasmaroo/net/unix/af_unix.c 2004-11-24 08:23:21 -08:00 -@@ -1535,9 +1535,11 @@ - - msg->msg_namelen = 0; - -+ down(&u->readsem); -+ - skb = skb_recv_datagram(sk, flags, noblock, &err); - if (!skb) -- goto out; -+ goto out_unlock; - - wake_up_interruptible(&u->peer_wait); - -@@ -1587,6 +1589,8 @@ - - out_free: - skb_free_datagram(sk,skb); -+out_unlock: -+ up(&u->readsem); - out: - return err; - } diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1016.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1016.patch deleted file mode 100644 index aa25ac95ed61..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1016.patch +++ /dev/null @@ -1,75 +0,0 @@ -===== include/linux/socket.h 1.12 vs edited ===== ---- 1.12/include/linux/socket.h 2004-09-09 06:40:01 +10:00 -+++ edited/include/linux/socket.h 2004-11-27 11:53:40 +11:00 -@@ -90,6 +90,10 @@ - (struct cmsghdr *)(ctl) : \ - (struct cmsghdr *)NULL) - #define CMSG_FIRSTHDR(msg) __CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen) -+#define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && \ -+ (cmsg)->cmsg_len <= (unsigned long) \ -+ ((mhdr)->msg_controllen - \ -+ ((char *)(cmsg) - (char *)(mhdr)->msg_control))) - - /* - * This mess will go away with glibc -===== net/core/scm.c 1.10 vs edited ===== ---- 1.10/net/core/scm.c 2004-05-31 05:08:14 +10:00 -+++ edited/net/core/scm.c 2004-11-27 11:48:55 +11:00 -@@ -127,9 +127,7 @@ - for too short ancillary data object at all! Oops. - OK, let's add it... - */ -- if (cmsg->cmsg_len < sizeof(struct cmsghdr) || -- (unsigned long)(((char*)cmsg - (char*)msg->msg_control) -- + cmsg->cmsg_len) > msg->msg_controllen) -+ if (!CMSG_OK(msg, cmsg)) - goto error; - - if (cmsg->cmsg_level != SOL_SOCKET) -===== net/ipv4/ip_sockglue.c 1.26 vs edited ===== ---- 1.26/net/ipv4/ip_sockglue.c 2004-07-01 06:10:53 +10:00 -+++ edited/net/ipv4/ip_sockglue.c 2004-11-27 11:49:45 +11:00 -@@ -146,11 +146,8 @@ - struct cmsghdr *cmsg; - - for (cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) { -- if (cmsg->cmsg_len < sizeof(struct cmsghdr) || -- (unsigned long)(((char*)cmsg - (char*)msg->msg_control) -- + cmsg->cmsg_len) > msg->msg_controllen) { -+ if (!CMSG_OK(msg, cmsg)) - return -EINVAL; -- } - if (cmsg->cmsg_level != SOL_IP) - continue; - switch (cmsg->cmsg_type) { -===== net/ipv6/datagram.c 1.20 vs edited ===== ---- 1.20/net/ipv6/datagram.c 2004-11-10 17:57:03 +11:00 -+++ edited/net/ipv6/datagram.c 2004-11-27 11:51:15 +11:00 -@@ -427,9 +427,7 @@ - int addr_type; - struct net_device *dev = NULL; - -- if (cmsg->cmsg_len < sizeof(struct cmsghdr) || -- (unsigned long)(((char*)cmsg - (char*)msg->msg_control) -- + cmsg->cmsg_len) > msg->msg_controllen) { -+ if (!CMSG_OK(msg, cmsg)) { - err = -EINVAL; - goto exit_f; - } -===== net/sctp/socket.c 1.129 vs edited ===== ---- 1.129/net/sctp/socket.c 2004-11-19 08:43:18 +11:00 -+++ edited/net/sctp/socket.c 2004-11-27 11:52:11 +11:00 -@@ -4098,12 +4098,8 @@ - for (cmsg = CMSG_FIRSTHDR(msg); - cmsg != NULL; - cmsg = CMSG_NXTHDR((struct msghdr*)msg, cmsg)) { -- /* Check for minimum length. The SCM code has this check. */ -- if (cmsg->cmsg_len < sizeof(struct cmsghdr) || -- (unsigned long)(((char*)cmsg - (char*)msg->msg_control) -- + cmsg->cmsg_len) > msg->msg_controllen) { -+ if (!CMSG_OK(msg, cmsg)) - return -EINVAL; -- } - - /* Should we parse this header or ignore? */ - if (cmsg->cmsg_level != IPPROTO_SCTP) diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1137.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1137.patch deleted file mode 100644 index 0a54680f6f4b..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1137.patch +++ /dev/null @@ -1,77 +0,0 @@ -# ChangeSet -# 2004/12/14 11:06:25-08:00 chrisw@osdl.org -# [IPV4/IPV6]: IGMP source filter fixes -# -# When adding or deleting from the source list make sure to find matches -# by comparing against the new source address, not the group address. -# Also, check each addr in the list rather than just the first one. -# And, finally, only delete from list when there's a match rather than -# vice-versa. Drop the effort to keep list sorted, since it's not done -# on full-state api and can create an sl_addr entry that the delta api -# won't be able to delete. Without these fixes sl_count can be corrupted -# which can allow for kernel memory corruption. -# -# Signed-off-by: Chris Wright <chrisw@osdl.org> -# Signed-off-by: David S. Miller <davem@davemloft.net> -# -diff -Nru a/net/ipv4/igmp.c b/net/ipv4/igmp.c ---- a/net/ipv4/igmp.c 2004-12-20 11:32:15 -08:00 -+++ b/net/ipv4/igmp.c 2004-12-20 11:32:15 -08:00 -@@ -1778,12 +1778,12 @@ - goto done; - rv = !0; - for (i=0; i<psl->sl_count; i++) { -- rv = memcmp(&psl->sl_addr, &mreqs->imr_multiaddr, -+ rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr, - sizeof(__u32)); -- if (rv >= 0) -+ if (rv == 0) - break; - } -- if (!rv) /* source not found */ -+ if (rv) /* source not found */ - goto done; - - /* update the interface filter */ -@@ -1825,9 +1825,9 @@ - } - rv = 1; /* > 0 for insert logic below if sl_count is 0 */ - for (i=0; i<psl->sl_count; i++) { -- rv = memcmp(&psl->sl_addr, &mreqs->imr_multiaddr, -+ rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr, - sizeof(__u32)); -- if (rv >= 0) -+ if (rv == 0) - break; - } - if (rv == 0) /* address already there is an error */ -diff -Nru a/net/ipv6/mcast.c b/net/ipv6/mcast.c ---- a/net/ipv6/mcast.c 2004-12-20 11:32:15 -08:00 -+++ b/net/ipv6/mcast.c 2004-12-20 11:32:15 -08:00 -@@ -391,12 +391,12 @@ - goto done; - rv = !0; - for (i=0; i<psl->sl_count; i++) { -- rv = memcmp(&psl->sl_addr, group, -+ rv = memcmp(&psl->sl_addr[i], source, - sizeof(struct in6_addr)); -- if (rv >= 0) -+ if (rv == 0) - break; - } -- if (!rv) /* source not found */ -+ if (rv) /* source not found */ - goto done; - - /* update the interface filter */ -@@ -437,8 +437,8 @@ - } - rv = 1; /* > 0 for insert logic below if sl_count is 0 */ - for (i=0; i<psl->sl_count; i++) { -- rv = memcmp(&psl->sl_addr, group, sizeof(struct in6_addr)); -- if (rv >= 0) -+ rv = memcmp(&psl->sl_addr[i], source, sizeof(struct in6_addr)); -+ if (rv == 0) - break; - } - if (rv == 0) /* address already there is an error */ diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1151.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1151.patch deleted file mode 100644 index fc4289e4f444..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.CAN-2004-1151.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- 1.74/arch/x86_64/ia32/sys_ia32.c 2004-12-19 10:58:02 -08:00 -+++ 1.75/arch/x86_64/ia32/sys_ia32.c 2004-12-19 10:58:02 -08:00 -@@ -525,11 +525,12 @@ - int sys32_ni_syscall(int call) - { - struct task_struct *me = current; -- static char lastcomm[8]; -- if (strcmp(lastcomm, me->comm)) { -- printk(KERN_INFO "IA32 syscall %d from %s not implemented\n", call, -- current->comm); -- strcpy(lastcomm, me->comm); -+ static char lastcomm[sizeof(me->comm)]; -+ -+ if (strncmp(lastcomm, me->comm, sizeof(lastcomm))) { -+ printk(KERN_INFO "IA32 syscall %d from %s not implemented\n", -+ call, me->comm); -+ strncpy(lastcomm, me->comm, sizeof(lastcomm)); - } - return -ENOSYS; - } -@@ -1125,11 +1126,11 @@ - long sys32_vm86_warning(void) - { - struct task_struct *me = current; -- static char lastcomm[8]; -- if (strcmp(lastcomm, me->comm)) { -+ static char lastcomm[sizeof(me->comm)]; -+ if (strncmp(lastcomm, me->comm, sizeof(lastcomm))) { - printk(KERN_INFO "%s: vm86 mode not supported on 64 bit kernel\n", - me->comm); -- strcpy(lastcomm, me->comm); -+ strncpy(lastcomm, me->comm, sizeof(lastcomm)); - } - return -ENOSYS; - } diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.binfmt_a.out.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.binfmt_a.out.patch deleted file mode 100644 index 89665ce8db42..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.binfmt_a.out.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff -Nru linux-2.6.9/fs/exec.c linux-2.6.9.plasmaroo/fs/exec.c ---- linux-2.6.9/fs/exec.c 2004-11-27 08:30:03 -08:00 -+++ linux-2.6.9.plasmaroo/fs/exec.c 2004-11-27 08:30:03 -08:00 -@@ -413,6 +413,7 @@ - - down_write(&mm->mmap_sem); - { -+ struct vm_area_struct *vma; - mpnt->vm_mm = mm; - #ifdef CONFIG_STACK_GROWSUP - mpnt->vm_start = stack_base; -@@ -433,6 +434,12 @@ - mpnt->vm_flags = VM_STACK_FLAGS; - mpnt->vm_flags |= mm->def_flags; - mpnt->vm_page_prot = protection_map[mpnt->vm_flags & 0x7]; -+ vma = find_vma(mm, mpnt->vm_start); -+ if (vma) { -+ up_write(&mm->mmap_sem); -+ kmem_cache_free(vm_area_cachep, mpnt); -+ return -ENOMEM; -+ } - insert_vm_struct(mm, mpnt); - mm->stack_vm = mm->total_vm = vma_pages(mpnt); - } -diff -Nru linux-2.6.9/fs/binfmt_aout.c linux-2.6.9.plasmaroo/fs/binfmt_aout.c ---- linux-2.6.9/fs/binfmt_aout.c 2004-11-27 08:31:43 -08:00 -+++ linux-2.6.9.plasmaroo/fs/binfmt_aout.c 2004-11-27 08:31:43 -08:00 -@@ -43,13 +43,18 @@ - .min_coredump = PAGE_SIZE - }; - --static void set_brk(unsigned long start, unsigned long end) -+#define BAD_ADDR(x) ((unsigned long)(x) >= TASK_SIZE) -+ -+static int set_brk(unsigned long start, unsigned long end) - { - start = PAGE_ALIGN(start); - end = PAGE_ALIGN(end); -- if (end <= start) -- return; -- do_brk(start, end - start); -+ if (end > start) { -+ unsigned long addr = do_brk(start, end - start); -+ if (BAD_ADDR(addr)) -+ return addr; -+ } -+ return 0; - } - - /* -@@ -413,7 +418,11 @@ - beyond_if: - set_binfmt(&aout_format); - -- set_brk(current->mm->start_brk, current->mm->brk); -+ retval = set_brk(current->mm->start_brk, current->mm->brk); -+ if (retval < 0) { -+ send_sig(SIGKILL, current, 0); -+ return retval; -+ } - - retval = setup_arg_pages(bprm, EXSTACK_DEFAULT); - if (retval < 0) { diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.binfmt_elf.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.binfmt_elf.patch deleted file mode 100644 index a836201deca1..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.binfmt_elf.patch +++ /dev/null @@ -1,85 +0,0 @@ -diff -ur linux-2.6.9/fs/binfmt_elf.c linux-2.6.9.plasmaroo/fs/binfmt_elf.c ---- linux-2.6.9/fs/binfmt_elf.c 2004-10-24 14:58:48.000000000 +0100 -+++ linux-2.6.9.plasmaroo/fs/binfmt_elf.c 2004-11-19 20:11:36.000000000 +0000 -@@ -335,9 +335,12 @@ - goto out; - - retval = kernel_read(interpreter,interp_elf_ex->e_phoff,(char *)elf_phdata,size); -- error = retval; -- if (retval < 0) -+ error = -EIO; -+ if (retval != size) { -+ if (retval < 0) -+ error = retval; - goto out_close; -+ } - - eppnt = elf_phdata; - for (i=0; i<interp_elf_ex->e_phnum; i++, eppnt++) { -@@ -532,8 +535,11 @@ - goto out; - - retval = kernel_read(bprm->file, loc->elf_ex.e_phoff, (char *) elf_phdata, size); -- if (retval < 0) -+ if (retval != size) { -+ if (retval >= 0) -+ retval = -EIO; - goto out_free_ph; -+ } - - files = current->files; /* Refcounted so ok */ - retval = unshare_files(); -@@ -570,7 +576,8 @@ - */ - - retval = -ENOMEM; -- if (elf_ppnt->p_filesz > PATH_MAX) -+ if (elf_ppnt->p_filesz > PATH_MAX || -+ elf_ppnt->p_filesz == 0) - goto out_free_file; - elf_interpreter = (char *) kmalloc(elf_ppnt->p_filesz, - GFP_KERNEL); -@@ -580,8 +587,16 @@ - retval = kernel_read(bprm->file, elf_ppnt->p_offset, - elf_interpreter, - elf_ppnt->p_filesz); -- if (retval < 0) -+ if (retval != elf_ppnt->p_filesz) { -+ if (retval >= 0) -+ retval = -EIO; - goto out_free_interp; -+ } -+ /* make sure path is NULL terminated */ -+ retval = -EINVAL; -+ if (elf_interpreter[elf_ppnt->p_filesz - 1] != '\0') -+ goto out_free_interp; -+ - /* If the program interpreter is one of these two, - * then assume an iBCS2 image. Otherwise assume - * a native linux image. -@@ -616,8 +631,11 @@ - if (IS_ERR(interpreter)) - goto out_free_interp; - retval = kernel_read(interpreter, 0, bprm->buf, BINPRM_BUF_SIZE); -- if (retval < 0) -+ if (retval != BINPRM_BUF_SIZE) { -+ if (retval >= 0) -+ retval = -EIO; - goto out_free_dentry; -+ } - - /* Get the exec headers */ - loc->interp_ex = *((struct exec *) bprm->buf); -@@ -776,8 +794,10 @@ - } - - error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, elf_prot, elf_flags); -- if (BAD_ADDR(error)) -- continue; -+ if (BAD_ADDR(error)) { -+ send_sig(SIGKILL, current, 0); -+ goto out_free_dentry; -+ } - - if (!load_addr_set) { - load_addr_set = 1; diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.shmLocking.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.shmLocking.patch deleted file mode 100644 index 66e4520909ed..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.shmLocking.patch +++ /dev/null @@ -1,56 +0,0 @@ -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2004/12/13 08:30:17-08:00 hugh@veritas.com -# [PATCH] shmctl SHM_LOCK perms -# -# Michael Kerrisk has observed that at present any process can SHM_LOCK any -# shm segment of size within process RLIMIT_MEMLOCK, despite having no -# permissions on the segment: surprising, though not obviously evil. And any -# process can SHM_UNLOCK any shm segment, despite no permissions on it: that -# is surely wrong. -# -# Unless CAP_IPC_LOCK, restrict both SHM_LOCK and SHM_UNLOCK to when the -# process euid matches the shm owner or creator: that seems the least -# surprising behaviour, which could be relaxed if a need appears later. -# -# Signed-off-by: Hugh Dickins <hugh@veritas.com> -# Signed-off-by: Andrew Morton <akpm@osdl.org> -# Signed-off-by: Linus Torvalds <torvalds@osdl.org> -# -# ipc/shm.c -# 2004/12/13 02:47:27-08:00 hugh@veritas.com +10 -5 -# shmctl SHM_LOCK perms -# -diff -Nru a/ipc/shm.c b/ipc/shm.c ---- a/ipc/shm.c 2004-12-20 10:32:59 -08:00 -+++ b/ipc/shm.c 2004-12-20 10:32:59 -08:00 -@@ -511,11 +511,6 @@ - case SHM_LOCK: - case SHM_UNLOCK: - { -- /* Allow superuser to lock segment in memory */ -- if (!can_do_mlock() && cmd == SHM_LOCK) { -- err = -EPERM; -- goto out; -- } - shp = shm_lock(shmid); - if(shp==NULL) { - err = -EINVAL; -@@ -524,6 +519,16 @@ - err = shm_checkid(shp,shmid); - if(err) - goto out_unlock; -+ -+ if (!capable(CAP_IPC_LOCK)) { -+ err = -EPERM; -+ if (current->euid != shp->shm_perm.uid && -+ current->euid != shp->shm_perm.cuid) -+ goto out_unlock; -+ if (cmd == SHM_LOCK && -+ !current->rlim[RLIMIT_MEMLOCK].rlim_cur) -+ goto out_unlock; -+ } - - err = security_shm_shmctl(shp, cmd); - if (err) diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.smbfs.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.smbfs.patch deleted file mode 100644 index f10cfedfab16..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.smbfs.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff -urN linux-2.6.8.1/fs/smbfs/proc.c linux-2.6.8.1.plasmaroo/fs/smbfs/proc.c ---- linux-2.6.8.1/fs/smbfs/proc.c 2004-08-24 17:15:57.000000000 +1000 -+++ linux-2.6.8.1.plasmaroo/fs/smbfs/proc.c 2004-11-06 11:27:20.000000000 +1100 -@@ -1427,9 +1427,9 @@ - * 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 -urN linux-2.6.8.1/fs/smbfs/request.c linux-2.6.8.1.plasmaroo/fs/smbfs/request.c ---- linux-2.6.8.1/fs/smbfs/request.c 2004-11-06 11:27:51.000000000 +1100 -+++ linux-2.6.8.1.plasmaroo/fs/smbfs/request.c 2004-11-06 11:27:20.000000000 +1100 -@@ -588,6 +588,10 @@ - data_count = WVAL(inbuf, smb_drcnt); - - /* Modify offset for the split header/buffer we use */ -+ if (data_offset < hdrlen) -+ goto out_bad_data; -+ if (parm_offset < hdrlen) -+ goto out_bad_parm; - data_offset -= hdrlen; - parm_offset -= hdrlen; - -@@ -607,6 +611,10 @@ - req->rq_lparm = parm_count; - req->rq_data = req->rq_buffer + data_offset; - req->rq_parm = req->rq_buffer + parm_offset; -+ if (parm_offset + parm_count > req->rq_rlen) -+ goto out_bad_parm; -+ if (data_offset + data_count > req->rq_rlen) -+ goto out_bad_data; - return 0; - } - -@@ -643,8 +652,12 @@ - - if (parm_disp + parm_count > req->rq_total_parm) - goto out_bad_parm; -+ if (parm_offset + parm_count > req->rq_rlen) -+ goto out_bad_parm; - if (data_disp + data_count > req->rq_total_data) - goto out_bad_data; -+ if (data_offset + data_count > req->rq_rlen) -+ goto out_bad_data; - - inbuf = req->rq_buffer; - memcpy(req->rq_parm + parm_disp, inbuf + parm_offset, parm_count); -@@ -676,13 +692,13 @@ - req->rq_errno = -EIO; - goto out; - out_bad_parm: -- printk(KERN_ERR "smb_trans2: invalid parms, disp=%d, cnt=%d, tot=%d\n", -- parm_disp, parm_count, parm_tot); -+ printk(KERN_ERR "smb_trans2: invalid parms, disp=%d, cnt=%d, tot=%d, ofs=%d\n", -+ parm_disp, parm_count, parm_tot, parm_offset); - req->rq_errno = -EIO; - goto out; - 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=%d, cnt=%d, tot=%d, ofs=%d\n", -+ data_disp, data_count, data_tot, data_offset); - req->rq_errno = -EIO; - out: - return req->rq_errno; diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.9.vma.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.9.vma.patch deleted file mode 100644 index a335bfc2e269..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources-2.6.9.vma.patch +++ /dev/null @@ -1,268 +0,0 @@ -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2004/11/25 16:00:28-08:00 nanhai.zou@intel.com -# [PATCH] ia64/x86_64/s390 overlapping vma fix -# -# IA64 is also vulnerable to the huge-vma-in-executable bug in 64 bit elf -# support, it just insert a vma of zero page without checking overlap, so user -# can construct a elf with section begin from 0x0 to trigger this BUGON(). -# -# However, I think it's safe to check overlap before we actually insert a vma -# into vma list. And I also feel check vma overlap everywhere is unnecessary, -# because invert_vm_struct will check it again, so the check is duplicated. -# It's better to have invert_vm_struct return a value then let caller check if -# it successes. Here is a patch against 2.6.10.rc2-mm3 I have tested it on -# i386, x86_64 and ia64 machines. -# -# Signed-off-by: Tony Luck <tony.luck@intel.com> -# Signed-off-by: Zou Nan hai <Nanhai.zou@intel.com> -# Signed-off-by: Andrew Morton <akpm@osdl.org> -# Signed-off-by: Linus Torvalds <torvalds@osdl.org> -# -# arch/ia64/ia32/binfmt_elf32.c -# 2004/11/24 22:42:43-08:00 nanhai.zou@intel.com +21 -5 -# ia64/x86_64/s390 overlapping vma fix -# -# arch/ia64/mm/init.c -# 2004/11/24 22:42:43-08:00 nanhai.zou@intel.com +14 -2 -# ia64/x86_64/s390 overlapping vma fix -# -# arch/s390/kernel/compat_exec.c -# 2004/11/24 22:42:43-08:00 nanhai.zou@intel.com +6 -2 -# ia64/x86_64/s390 overlapping vma fix -# -# arch/x86_64/ia32/ia32_binfmt.c -# 2004/11/24 22:42:43-08:00 nanhai.zou@intel.com +6 -2 -# ia64/x86_64/s390 overlapping vma fix -# -# fs/exec.c -# 2004/11/24 22:42:43-08:00 nanhai.zou@intel.com +3 -6 -# ia64/x86_64/s390 overlapping vma fix -# -# include/linux/mm.h -# 2004/11/24 22:42:43-08:00 nanhai.zou@intel.com +1 -1 -# ia64/x86_64/s390 overlapping vma fix -# -# mm/mmap.c -# 2004/11/24 22:42:43-08:00 nanhai.zou@intel.com +3 -2 -# ia64/x86_64/s390 overlapping vma fix -# -diff -Nru a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c ---- a/arch/ia64/ia32/binfmt_elf32.c 2004-12-03 12:01:20 -08:00 -+++ b/arch/ia64/ia32/binfmt_elf32.c 2004-12-03 12:01:20 -08:00 -@@ -100,7 +100,11 @@ - vma->vm_ops = &ia32_shared_page_vm_ops; - down_write(¤t->mm->mmap_sem); - { -- insert_vm_struct(current->mm, vma); -+ if (insert_vm_struct(current->mm, vma)) { -+ kmem_cache_free(vm_area_cachep, vma); -+ up_write(¤t->mm->mmap_sem); -+ return; -+ } - } - up_write(¤t->mm->mmap_sem); - } -@@ -123,7 +127,11 @@ - vma->vm_ops = &ia32_gate_page_vm_ops; - down_write(¤t->mm->mmap_sem); - { -- insert_vm_struct(current->mm, vma); -+ if (insert_vm_struct(current->mm, vma)) { -+ kmem_cache_free(vm_area_cachep, vma); -+ up_write(¤t->mm->mmap_sem); -+ return; -+ } - } - up_write(¤t->mm->mmap_sem); - } -@@ -142,7 +150,11 @@ - vma->vm_flags = VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE; - down_write(¤t->mm->mmap_sem); - { -- insert_vm_struct(current->mm, vma); -+ if (insert_vm_struct(current->mm, vma)) { -+ kmem_cache_free(vm_area_cachep, vma); -+ up_write(¤t->mm->mmap_sem); -+ return; -+ } - } - up_write(¤t->mm->mmap_sem); - } -@@ -190,7 +202,7 @@ - unsigned long stack_base; - struct vm_area_struct *mpnt; - struct mm_struct *mm = current->mm; -- int i; -+ int i, ret; - - stack_base = IA32_STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE; - mm->arg_start = bprm->p + stack_base; -@@ -225,7 +237,11 @@ - mpnt->vm_flags = VM_STACK_FLAGS; - mpnt->vm_page_prot = (mpnt->vm_flags & VM_EXEC)? - PAGE_COPY_EXEC: PAGE_COPY; -- insert_vm_struct(current->mm, mpnt); -+ if ((ret = insert_vm_struct(current->mm, mpnt))) { -+ up_write(¤t->mm->mmap_sem); -+ kmem_cache_free(vm_area_cachep, mpnt); -+ return ret; -+ } - current->mm->stack_vm = current->mm->total_vm = vma_pages(mpnt); - } - -diff -Nru a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c ---- a/arch/ia64/mm/init.c 2004-12-03 12:01:20 -08:00 -+++ b/arch/ia64/mm/init.c 2004-12-03 12:01:20 -08:00 -@@ -131,7 +131,13 @@ - vma->vm_end = vma->vm_start + PAGE_SIZE; - vma->vm_page_prot = protection_map[VM_DATA_DEFAULT_FLAGS & 0x7]; - vma->vm_flags = VM_DATA_DEFAULT_FLAGS | VM_GROWSUP; -- insert_vm_struct(current->mm, vma); -+ down_write(¤t->mm->mmap_sem); -+ if (insert_vm_struct(current->mm, vma)) { -+ up_write(¤t->mm->mmap_sem); -+ kmem_cache_free(vm_area_cachep, vma); -+ return; -+ } -+ up_write(¤t->mm->mmap_sem); - } - - /* map NaT-page at address zero to speed up speculative dereferencing of NULL: */ -@@ -143,7 +149,13 @@ - vma->vm_end = PAGE_SIZE; - vma->vm_page_prot = __pgprot(pgprot_val(PAGE_READONLY) | _PAGE_MA_NAT); - vma->vm_flags = VM_READ | VM_MAYREAD | VM_IO | VM_RESERVED; -- insert_vm_struct(current->mm, vma); -+ down_write(¤t->mm->mmap_sem); -+ if (insert_vm_struct(current->mm, vma)) { -+ up_write(¤t->mm->mmap_sem); -+ kmem_cache_free(vm_area_cachep, vma); -+ return; -+ } -+ up_write(¤t->mm->mmap_sem); - } - } - } -diff -Nru a/arch/s390/kernel/compat_exec.c b/arch/s390/kernel/compat_exec.c ---- a/arch/s390/kernel/compat_exec.c 2004-12-03 12:01:20 -08:00 -+++ b/arch/s390/kernel/compat_exec.c 2004-12-03 12:01:20 -08:00 -@@ -39,7 +39,7 @@ - unsigned long stack_base; - struct vm_area_struct *mpnt; - struct mm_struct *mm = current->mm; -- int i; -+ int i, ret; - - stack_base = STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE; - mm->arg_start = bprm->p + stack_base; -@@ -68,7 +68,11 @@ - /* executable stack setting would be applied here */ - mpnt->vm_page_prot = PAGE_COPY; - mpnt->vm_flags = VM_STACK_FLAGS; -- insert_vm_struct(mm, mpnt); -+ if ((ret = insert_vm_struct(mm, mpnt))) { -+ up_write(&mm->mmap_sem); -+ kmem_cache_free(vm_area_cachep, mpnt); -+ return ret; -+ } - mm->stack_vm = mm->total_vm = vma_pages(mpnt); - } - -diff -Nru a/arch/x86_64/ia32/ia32_binfmt.c b/arch/x86_64/ia32/ia32_binfmt.c ---- a/arch/x86_64/ia32/ia32_binfmt.c 2004-12-03 12:01:20 -08:00 -+++ b/arch/x86_64/ia32/ia32_binfmt.c 2004-12-03 12:01:20 -08:00 -@@ -334,7 +334,7 @@ - unsigned long stack_base; - struct vm_area_struct *mpnt; - struct mm_struct *mm = current->mm; -- int i; -+ int i, ret; - - stack_base = IA32_STACK_TOP - MAX_ARG_PAGES * PAGE_SIZE; - mm->arg_start = bprm->p + stack_base; -@@ -368,7 +368,11 @@ - mpnt->vm_flags = VM_STACK_FLAGS; - mpnt->vm_page_prot = (mpnt->vm_flags & VM_EXEC) ? - PAGE_COPY_EXEC : PAGE_COPY; -- insert_vm_struct(mm, mpnt); -+ if ((ret = insert_vm_struct(mm, mpnt))) { -+ up_write(&mm->mmap_sem); -+ kmem_cache_free(vm_area_cachep, mpnt); -+ return ret; -+ } - mm->stack_vm = mm->total_vm = vma_pages(mpnt); - } - -diff -Nru a/fs/exec.c b/fs/exec.c ---- a/fs/exec.c 2004-12-03 12:01:20 -08:00 -+++ b/fs/exec.c 2004-12-03 12:01:20 -08:00 -@@ -342,7 +342,7 @@ - unsigned long stack_base; - struct vm_area_struct *mpnt; - struct mm_struct *mm = current->mm; -- int i; -+ int i, ret; - long arg_size; - - #ifdef CONFIG_STACK_GROWSUP -@@ -413,7 +413,6 @@ - - down_write(&mm->mmap_sem); - { -- struct vm_area_struct *vma; - mpnt->vm_mm = mm; - #ifdef CONFIG_STACK_GROWSUP - mpnt->vm_start = stack_base; -@@ -434,13 +433,11 @@ - mpnt->vm_flags = VM_STACK_FLAGS; - mpnt->vm_flags |= mm->def_flags; - mpnt->vm_page_prot = protection_map[mpnt->vm_flags & 0x7]; -- vma = find_vma(mm, mpnt->vm_start); -- if (vma) { -+ if ((ret = insert_vm_struct(mm, mpnt))) { - up_write(&mm->mmap_sem); - kmem_cache_free(vm_area_cachep, mpnt); -- return -ENOMEM; -+ return ret; - } -- insert_vm_struct(mm, mpnt); - mm->stack_vm = mm->total_vm = vma_pages(mpnt); - } - -diff -Nru a/include/linux/mm.h b/include/linux/mm.h ---- a/include/linux/mm.h 2004-12-03 12:01:20 -08:00 -+++ b/include/linux/mm.h 2004-12-03 12:01:20 -08:00 -@@ -675,7 +675,7 @@ - extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); - extern int split_vma(struct mm_struct *, - struct vm_area_struct *, unsigned long addr, int new_below); --extern void insert_vm_struct(struct mm_struct *, struct vm_area_struct *); -+extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); - extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, - struct rb_node **, struct rb_node *); - extern struct vm_area_struct *copy_vma(struct vm_area_struct **, -diff -Nru a/mm/mmap.c b/mm/mmap.c ---- a/mm/mmap.c 2004-12-03 12:01:20 -08:00 -+++ b/mm/mmap.c 2004-12-03 12:01:20 -08:00 -@@ -1871,7 +1871,7 @@ - * and into the inode's i_mmap tree. If vm_file is non-NULL - * then i_mmap_lock is taken here. - */ --void insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma) -+int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma) - { - struct vm_area_struct * __vma, * prev; - struct rb_node ** rb_link, * rb_parent; -@@ -1894,8 +1894,9 @@ - } - __vma = find_vma_prepare(mm,vma->vm_start,&prev,&rb_link,&rb_parent); - if (__vma && __vma->vm_start < vma->vm_end) -- BUG(); -+ return -ENOMEM; - vma_link(mm, vma, prev, rb_link, rb_parent); -+ return 0; - } - - /* diff --git a/sys-kernel/ck-sources/files/ck-sources.AF_UNIX.patch b/sys-kernel/ck-sources/files/ck-sources.AF_UNIX.patch deleted file mode 100644 index 6ced78404a2d..000000000000 --- a/sys-kernel/ck-sources/files/ck-sources.AF_UNIX.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- linux-2.4.27/net/unix/af_unix.c 2004-11-24 08:23:21 -08:00 -+++ linux-2.4.28/net/unix/af_unix.c 2004-11-24 08:23:21 -08:00 -@@ -1403,9 +1403,11 @@ - - msg->msg_namelen = 0; - -+ down(&sk->protinfo.af_unix.readsem); -+ - skb = skb_recv_datagram(sk, flags, noblock, &err); - if (!skb) -- goto out; -+ goto out_unlock; - - wake_up_interruptible(&sk->protinfo.af_unix.peer_wait); - -@@ -1449,6 +1451,8 @@ - - out_free: - skb_free_datagram(sk,skb); -+out_unlock: -+ up(&sk->protinfo.af_unix.readsem); - out: - return err; - } diff --git a/sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r1 b/sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r1 new file mode 100644 index 000000000000..7b37d3390404 --- /dev/null +++ b/sys-kernel/ck-sources/files/digest-ck-sources-2.6.10-r1 @@ -0,0 +1,2 @@ +MD5 cffcd2919d9c8ef793ce1ac07a440eda linux-2.6.10.tar.bz2 36533484 +MD5 0435b10fd9ac396601fa6732d7521f11 patch-2.6.10-ck1.bz2 33017 diff --git a/sys-kernel/ck-sources/files/digest-ck-sources-2.6.9-r3 b/sys-kernel/ck-sources/files/digest-ck-sources-2.6.9-r3 deleted file mode 100644 index a7477ce8a768..000000000000 --- a/sys-kernel/ck-sources/files/digest-ck-sources-2.6.9-r3 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 e921200f074ca97184e150ef5a4af825 linux-2.6.9.tar.bz2 36261440 -MD5 b22c946207ad504d511756043929c6ac patch-2.6.9-ck3.bz2 47987 |