]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
x86-64 recursive fault fix, fwd from Andi
authorChris Wright <chrisw@sous-sol.org>
Mon, 27 Feb 2006 19:56:48 +0000 (11:56 -0800)
committerChris Wright <chrisw@sous-sol.org>
Mon, 27 Feb 2006 19:56:48 +0000 (11:56 -0800)
queue/series
queue/x86_64-check-for-bad-elf-entry-address.patch [new file with mode: 0644]

index 5726953723a9743c238012a0b5396c4995194d67..9da3cb58d4d41e9a0469d6070b7fd9bea4350118 100644 (file)
@@ -30,3 +30,4 @@ skge-speed-setting.patch
 skge-fix-napi-irq-race.patch
 skge-genesis-phy-initialization-fix.patch
 skge-fix-smp-race.patch
+x86_64-check-for-bad-elf-entry-address.patch
diff --git a/queue/x86_64-check-for-bad-elf-entry-address.patch b/queue/x86_64-check-for-bad-elf-entry-address.patch
new file mode 100644 (file)
index 0000000..c096ead
--- /dev/null
@@ -0,0 +1,34 @@
+From stable-bounces@linux.kernel.org  Sat Feb 25 19:38:01 2006
+Date: Sun, 26 Feb 2006 04:34:00 +0100
+From: Andi Kleen <ak@suse.de>
+To: stable@kernel.org
+Cc: 
+Subject: [PATCH] x86_64: Check for bad elf entry address
+
+
+From: Suresh Siddha <suresh.b.siddha@intel.com>
+
+Fixes a local DOS on Intel systems that lead to an endless
+recursive fault.  AMD machines don't seem to be affected.
+
+Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
+Signed-off-by: Andi Kleen <ak@suse.de>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ fs/binfmt_elf.c |    5 +++++
+ 1 files changed, 5 insertions(+)
+
+--- linux-2.6.15.4.orig/fs/binfmt_elf.c
++++ linux-2.6.15.4/fs/binfmt_elf.c
+@@ -932,6 +932,11 @@ static int load_elf_binary(struct linux_
+               kfree(elf_interpreter);
+       } else {
+               elf_entry = loc->elf_ex.e_entry;
++              if (BAD_ADDR(elf_entry)) {
++                      send_sig(SIGSEGV, current, 0);
++                      retval = -ENOEXEC; /* Nobody gets to see this, but.. */
++                      goto out_free_dentry;
++              }
+       }
+       kfree(elf_phdata);