Version bump for the binfmt_elf security vulnerability, bug #70681.
authorTim Yamin <plasmaroo@gentoo.org>
Fri, 12 Nov 2004 19:57:20 +0000 (19:57 +0000)
committerTim Yamin <plasmaroo@gentoo.org>
Fri, 12 Nov 2004 19:57:20 +0000 (19:57 +0000)
sys-kernel/uclinux-sources/ChangeLog
sys-kernel/uclinux-sources/Manifest
sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0-r8 [moved from sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0-r7 with 100% similarity]
sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.7_p0-r8 [moved from sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.7_p0-r7 with 100% similarity]
sys-kernel/uclinux-sources/files/uclinux-sources-2.4.26_p0.binfmt_elf.patch [new file with mode: 0644]
sys-kernel/uclinux-sources/files/uclinux-sources-2.6.binfmt_elf.patch [new file with mode: 0644]
sys-kernel/uclinux-sources/uclinux-sources-2.4.26_p0-r8.ebuild [moved from sys-kernel/uclinux-sources/uclinux-sources-2.4.26_p0-r7.ebuild with 93% similarity]
sys-kernel/uclinux-sources/uclinux-sources-2.6.7_p0-r8.ebuild [moved from sys-kernel/uclinux-sources/uclinux-sources-2.6.7_p0-r7.ebuild with 93% similarity]

index 6e153df729f7712a072075f207c0f9adc9c8d8b7..e42fae30e5d8e20bdd6cc9179919329ee220e6c2 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for sys-kernel/uclinux-sources
 # Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/uclinux-sources/ChangeLog,v 1.20 2004/11/09 19:27:14 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/uclinux-sources/ChangeLog,v 1.21 2004/11/12 19:57:20 plasmaroo Exp $
+
+*uclinux-sources-2.6.7_p0-r8 (12 Nov 2004)
+
+  12 Nov 2004; <plasmaroo@gentoo.org> -uclinux-sources-2.4.26_p0-r7.ebuild,
+  +uclinux-sources-2.4.26_p0-r8.ebuild, -uclinux-sources-2.6.7_p0-r7.ebuild,
+  +uclinux-sources-2.6.7_p0-r8.ebuild,
+  +files/uclinux-sources-2.4.26_p0.binfmt_elf.patch,
+  +files/uclinux-sources-2.6.binfmt_elf.patch:
+  Version bump for the binfmt_elf security vulnerability, bug #70681.
 
 *uclinux-sources-2.4.26_p0-r7 (09 Nov 2004)
 
index 852e4c4aeb972ab1479e937caa93582d7977dad4..26dd9b6e1afa0d281bc5ed006422454530645eba 100644 (file)
@@ -1,20 +1,22 @@
-MD5 0679dc6096268305dc35e6366ad255a7 ChangeLog 5874
-MD5 070c055de0f3423958cc872d27f7b338 uclinux-sources-2.4.26_p0-r7.ebuild 2398
+MD5 4824179876396ff00557ae94071f3b20 ChangeLog 6281
 MD5 f3fa6c474b8727f8215534b7fc9c93ba metadata.xml 304
-MD5 ab6e72d33b41532b4139ce2981fbb9c8 uclinux-sources-2.6.7_p0-r7.ebuild 2355
+MD5 b48f67e95964c2e92ef015595e538e82 uclinux-sources-2.4.26_p0-r8.ebuild 2487
+MD5 c5fd4eae9b0cde8aa04854eb4fcad7b8 uclinux-sources-2.6.7_p0-r8.ebuild 2445
 MD5 2b3ddb8b8b15f8da35ade38544b57857 files/uclinux-sources-2.4.26_p0.XDRWrapFix.patch 1499
 MD5 dc18e982f8149588a291956481885a8c files/uclinux-sources-2.4.26_p0.CAN-2004-0495.patch 17549
+MD5 040a6d66b9567c30bf1a0cb1ce27c9db files/digest-uclinux-sources-2.6.7_p0-r8 287
 MD5 c2510fe1891f5a9effb12c2196922206 files/uclinux-sources-2.6.cmdlineLeak.patch 281
 MD5 60d25ff310fc6abfdce39ec9e47345af files/uclinux-sources-2.4.26_p0.CAN-2004-0685.patch 2809
 MD5 d4a740ae56c2049247083af387a22a85 files/uclinux-sources-2.4.26_p0.CAN-2004-0394.patch 350
+MD5 d306514f5f3dc06853daf8c3e60d01c9 files/digest-uclinux-sources-2.4.26_p0-r8 301
+MD5 1ee8ba8362089c31fdd7d88b32eaf63e files/uclinux-sources-2.6.binfmt_elf.patch 1938
+MD5 24c53f49954dab29cfc172d4a3ba1a31 files/uclinux-sources-2.4.26_p0.binfmt_elf.patch 1928
 MD5 0f66013f643c79c97fda489618a4e2fd files/uclinux-sources-2.4.26_p0.CAN-2004-0535.patch 476
 MD5 95708646470a95668e8789cd415844ed files/uclinux-sources.CAN-2004-0497.patch 846
 MD5 c9da1bc82b906f6abc648c056e7bf662 files/uclinux-sources-2.4.26_p0.FPULockup-53804.patch 354
 MD5 39361f8d16b1fe5891aab62e92f8cd30 files/uclinux-sources-2.6.IPTables-RDoS.patch 390
 MD5 aa595005721b58929ee55e2e8f4b6ba0 files/uclinux-sources-2.6.CAN-2004-0816.patch 1693
-MD5 040a6d66b9567c30bf1a0cb1ce27c9db files/digest-uclinux-sources-2.6.7_p0-r7 287
 MD5 452e04a312368605e145428c35bd0e05 files/uclinux-sources-2.6.devPtmx.patch 572
 MD5 b738cb0120a32aa92cfcfdbd564dd21f files/uclinux-sources-2.6.ProcPerms.patch 1368
 MD5 8204afea1d572b49a4a80d8da4eef0c9 files/uclinux-sources-2.6.CAN-2004-0596.patch 1033
-MD5 d306514f5f3dc06853daf8c3e60d01c9 files/digest-uclinux-sources-2.4.26_p0-r7 301
 MD5 d1ccc2047be533c992f67270a150a210 files/uclinux-sources-2.4.26_p0.cmdlineLeak.patch 388
diff --git a/sys-kernel/uclinux-sources/files/uclinux-sources-2.4.26_p0.binfmt_elf.patch b/sys-kernel/uclinux-sources/files/uclinux-sources-2.4.26_p0.binfmt_elf.patch
new file mode 100644 (file)
index 0000000..534e4c0
--- /dev/null
@@ -0,0 +1,72 @@
+--- linux-2.4.27/fs/binfmt_elf.c       2004-11-10 12:25:16 -08:00
++++ linux-2.4.27-plasmaroo/fs/binfmt_elf.c     2004-11-10 12:25:16 -08:00
+@@ -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, 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();
+@@ -580,8 +586,14 @@
+                       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 */
++                      elf_interpreter[elf_ppnt->p_filesz - 1] = '\0';
++
+                       /* If the program interpreter is one of these two,
+                        * then assume an iBCS2 image. Otherwise assume
+                        * a native linux image.
+@@ -616,8 +628,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 +791,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/uclinux-sources/files/uclinux-sources-2.6.binfmt_elf.patch b/sys-kernel/uclinux-sources/files/uclinux-sources-2.6.binfmt_elf.patch
new file mode 100644 (file)
index 0000000..9ca2367
--- /dev/null
@@ -0,0 +1,72 @@
+--- linux-2.6.7-uc0-r8/fs/binfmt_elf.c 2004-11-12 11:50:08 -08:00
++++ linux-2.6.7-uc0-r8-plasmaroo/fs/binfmt_elf.c       2004-11-12 11:50:08 -08:00
+@@ -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, 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();
+@@ -580,8 +586,14 @@
+                       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 */
++                      elf_interpreter[elf_ppnt->p_filesz - 1] = '\0';
++
+                       /* If the program interpreter is one of these two,
+                        * then assume an iBCS2 image. Otherwise assume
+                        * a native linux image.
+@@ -616,8 +628,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 +791,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;
similarity index 93%
rename from sys-kernel/uclinux-sources/uclinux-sources-2.4.26_p0-r7.ebuild
rename to sys-kernel/uclinux-sources/uclinux-sources-2.4.26_p0-r8.ebuild
index 67103cc3f15b2fd82b1eea216c4f7f89a1d3eb03..25aff56308607c79346a21f7a8ba82690c0669c1 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/uclinux-sources/uclinux-sources-2.4.26_p0-r7.ebuild,v 1.1 2004/11/09 19:27:14 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/uclinux-sources/uclinux-sources-2.4.26_p0-r8.ebuild,v 1.1 2004/11/12 19:57:20 plasmaroo Exp $
 
 IUSE=""
 
@@ -57,6 +57,7 @@ src_unpack() {
        epatch ${FILESDIR}/${P}.FPULockup-53804.patch || die "Failed to apply FPU-lockup patch!"
        epatch ${FILESDIR}/${P}.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!"
        epatch ${FILESDIR}/${P}.XDRWrapFix.patch || die "Failed to apply the kNFSd XDR patch!"
+       epatch ${FILESDIR}/${P}.binfmt_elf.patch || die "Failed to apply the binfmt_elf patch!"
 
        kernel_universal_unpack
        set ARCH=${MY_ARCH}
similarity index 93%
rename from sys-kernel/uclinux-sources/uclinux-sources-2.6.7_p0-r7.ebuild
rename to sys-kernel/uclinux-sources/uclinux-sources-2.6.7_p0-r8.ebuild
index db82cb425c1da90d923366f83aa99ec860496e09..df3c58e05365767a6f296f75e76ecb2d081bd909 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/uclinux-sources/uclinux-sources-2.6.7_p0-r7.ebuild,v 1.1 2004/11/09 19:27:14 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/uclinux-sources/uclinux-sources-2.6.7_p0-r8.ebuild,v 1.1 2004/11/12 19:57:20 plasmaroo Exp $
 
 IUSE=""
 
@@ -50,6 +50,7 @@ src_unpack() {
        epatch ${FILESDIR}/${PN}-2.6.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!"
        epatch ${FILESDIR}/${PN}-2.6.CAN-2004-0816.patch || die "Failed to apply the CAN-2004-0816 patch!"
        epatch ${FILESDIR}/${PN}-2.6.devPtmx.patch || die "Failed to apply /dev/ptmx patch!"
+       epatch ${FILESDIR}/${PN}-2.6.binfmt_elf.patch || die "Failed to apply binfmt_elf patch!"
 
        set MY_ARCH=${ARCH}
        unset ARCH