[WBEL-devel] RHSA-2003:419-01 kernel packages

Jan-Frode Myklebust janfrode@parallab.uib.no
Wed, 7 Jan 2004 20:20:11 +0100


--rS8CxjVDS/+yyDmU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Mon, Jan 05, 2004 at 02:37:45PM -0600, John Morris wrote:
> On 5 Jan 2004, Jason Dixon wrote:
> 
> > Haven't seen anything on whitebox-announce.  Anyone working on this
> > update?
> 
> Still waiting to see it show on updates.redhat.com. Unless someone points 
> out an alternate source of SRPMS I'm stuck with what is available.
> 

Ubelievable.. still no updated kernel for the RedHat flaggship
product. 

Here's a patched kernel-2.4.21-4.0.1.EL srpm with only this do_mremap fix. 

	ftp://ftp.ii.uib.no/pub/janfrode/WBEL/kernel-2.4.21-4.0.1.EL2.src.rpm

There's also i686-binaries there.

Instructions if somebody else want to build this from trusted sources:

	rpm -ivh kernel-2.4.21-4.0.1.EL.src.rpm
	cd /usr/src/redhat/SPECS
	patch < /path/to/attached/kernel-2.4.spec.mremap-patch
	cp /path/to/attached/linux-2.4.21-mremap-fix.patch /usr/src/redhat/SOURCES
	rpmbuild -ba --target=i686 kernel-2.4.spec


   -jf

--rS8CxjVDS/+yyDmU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="linux-2.4.21-mremap-fix.patch"

diff -urNp linux/mm/mremap.c linux-2.4.21/mm/mremap.c
--- linux/mm/mremap.c
+++ linux-2.4.21/mm/mremap.c
@@ -306,6 +306,14 @@ unsigned long do_mremap(unsigned long ad
 
 		if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
 			goto out;
+		/*
+		 * Allow new_len == 0 only if new_addr == addr
+		 * to preserve truncation in place (that was working
+		 * safe and some app may depend on it).
+		 */
+		if (unlikely(!new_len && new_addr != addr))
+			goto out;
+
 
 		/* Check if the location we're moving into overlaps the
 		 * old location at all, and fail if it does.

--rS8CxjVDS/+yyDmU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="kernel-2.4.spec.mremap-patch"

--- kernel-2.4.spec.org	2004-01-07 13:55:59.000000000 +0100
+++ kernel-2.4.spec	2004-01-07 13:57:52.000000000 +0100
@@ -19,7 +19,7 @@
 # that the kernel isn't the stock RHL kernel, for example by
 # adding some text to the end of the version number.
 #
-%define release 4.0.1.EL
+%define release 4.0.1.EL2
 %define sublevel 21
 %define kversion 2.4.%{sublevel}
 # /usr/src/%{kslnk} -> /usr/src/linux-%{KVERREL}
@@ -512,6 +512,9 @@
 # snip out some luxury code when CONFIG_SMALL is on, for -BOOT kernel
 Patch10040: linux-2.4.21-config-small.patch
 
+# Fix mremap-bug
+Patch10050: linux-2.4.21-mremap-fix.patch
+
 # END OF PATCH DEFINITIONS
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1449,6 +1452,8 @@
 # snip out some luxury code when CONFIG_SMALL is on, for -BOOT kernel
 %patch10040 -p1
 
+%patch10050 -p1
+
 # END OF PATCH APPLICATIONS
 
 cp %{SOURCE10} Documentation/
@@ -1997,6 +2002,9 @@
 %endif
 
 %changelog
+* Wed Jan  7 2004 Jan-Frode Myklebust <janfrode@parallab.uib.no> kernel-2.4.21-4.0.1.EL2
+- Added the do_mremap-securityfix.
+
 * Fri Oct 17 2003 Ernie Petrides <petrides@redhat.com> kernel-2.4.21-4.0.1.EL
 - errata #1: increase usable amd64 address space for 32-bit apps (Jim Paradis)
 

--rS8CxjVDS/+yyDmU--