Adding patch for CAN-2004-1069; bug #72317.
authorTim Yamin <plasmaroo@gentoo.org>
Sun, 19 Dec 2004 18:50:09 +0000 (18:50 +0000)
committerTim Yamin <plasmaroo@gentoo.org>
Sun, 19 Dec 2004 18:50:09 +0000 (18:50 +0000)
sys-kernel/ck-sources/ChangeLog
sys-kernel/ck-sources/Manifest
sys-kernel/ck-sources/ck-sources-2.6.9-r3.ebuild
sys-kernel/ck-sources/files/ck-sources-2.6.9.AF_UNIX.SELinux.patch [new file with mode: 0644]

index 7b1bd98259bd2f87edb5e0effea347071fcaf6ce..8b2ffdd428eb3eea007226caa72605805c4809bd 100644 (file)
@@ -1,6 +1,10 @@
 # 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.72 2004/12/03 20:19:55 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.73 2004/12/19 18:50:09 plasmaroo Exp $
+
+  19 Dec 2004; <plasmaroo@gentoo.org> ck-sources-2.6.9-r3.ebuild,
+  +files/ck-sources-2.6.9.AF_UNIX.SELinux.patch:
+  Adding patch for CAN-2004-1069; bug #72317.
 
   03 Dec 2004; <plasmaroo@gentoo.org> ck-sources-2.6.9-r3.ebuild,
   +files/ck-sources-2.6.9.vma.patch:
index 02b60a8be2bda45aec993c5ae9d03b1b8e1c521d..06e7ccea466eec76bdff08f142b72d401b0e0d92 100644 (file)
@@ -1,8 +1,9 @@
-MD5 29b36b07d158a5c324387562f421899f ChangeLog 14168
-MD5 7a973c73932442f318da44b57dfa05a9 ck-sources-2.6.9-r3.ebuild 830
+MD5 083c2c1e5ff20023498a6c3f91910e37 ChangeLog 14330
+MD5 0da7a0fefa1fb1e58bf944f03d90dda3 ck-sources-2.6.9-r3.ebuild 870
 MD5 467750a99a7e23aac6f007d29c5f122b ck-sources-2.4.27-r4.ebuild 1077
 MD5 7187b8c28501f454a2412c9e4a7fcf53 metadata.xml 421
 MD5 2b3ddb8b8b15f8da35ade38544b57857 files/ck-sources-2.4.27.XDRWrapFix.patch 1499
+MD5 4d656fa3f3a47df751c0d78b64ed8353 files/ck-sources-2.6.9.AF_UNIX.SELinux.patch 1761
 MD5 42b42f2a4f260fad2fef264b82aff2ae files/ck-sources-2.6.9.vma.patch 8952
 MD5 b0a1f80aff51d6601e8924329023b241 files/ck-sources.AF_UNIX.patch 515
 MD5 d1ccc2047be533c992f67270a150a210 files/ck-sources-2.4.27.cmdlineLeak.patch 388
index 1b1384d01f08463c14b3942909a363b5976d87ba..6a2ef6e8f067583db5850711b57f09b2ae503f08 100644 (file)
@@ -1,11 +1,12 @@
 # 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.7 2004/12/03 20:19:55 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.6.9-r3.ebuild,v 1.8 2004/12/19 18:50:09 plasmaroo 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"
 K_PREPATCHED="yes"
 UNIPATCH_STRICTORDER="yes"
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
new file mode 100644 (file)
index 0000000..dbb8b23
--- /dev/null
@@ -0,0 +1,61 @@
+--- 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);