diff options
author | 2004-12-08 17:32:53 +0000 | |
---|---|---|
committer | 2004-12-08 17:32:53 +0000 | |
commit | eef7416a66717470c3f3ca98d4c44c3e144b564f (patch) | |
tree | 5f83e37349bb97c38d6a44542dd3f43b720d0fb9 /sys-kernel/hppa-sources/files | |
parent | Removed old versions (diff) | |
download | historical-eef7416a66717470c3f3ca98d4c44c3e144b564f.tar.gz historical-eef7416a66717470c3f3ca98d4c44c3e144b564f.tar.bz2 historical-eef7416a66717470c3f3ca98d4c44c3e144b564f.zip |
Security fixes (#72452).
Diffstat (limited to 'sys-kernel/hppa-sources/files')
-rw-r--r-- | sys-kernel/hppa-sources/files/CAN-2004-1074.patch | 63 | ||||
-rw-r--r-- | sys-kernel/hppa-sources/files/digest-hppa-sources-2.4.27_p4-r2 | 4 |
2 files changed, 67 insertions, 0 deletions
diff --git a/sys-kernel/hppa-sources/files/CAN-2004-1074.patch b/sys-kernel/hppa-sources/files/CAN-2004-1074.patch new file mode 100644 index 000000000000..11846801b90d --- /dev/null +++ b/sys-kernel/hppa-sources/files/CAN-2004-1074.patch @@ -0,0 +1,63 @@ +diff -uNr linux-2.4.27-pa4-r2.orig/fs/binfmt_aout.c linux-2.4.27-pa4-r2/fs/binfmt_aout.c +--- linux-2.4.27-pa4-r2.orig/fs/binfmt_aout.c 2004-12-08 18:24:03.899156592 +0100 ++++ linux-2.4.27-pa4-r2/fs/binfmt_aout.c 2004-12-08 18:24:25.898812136 +0100 +@@ -39,13 +39,18 @@ + NULL, THIS_MODULE, load_aout_binary, load_aout_library, aout_core_dump, 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; + } + + /* +@@ -405,7 +410,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); + if (retval < 0) { +diff -uNr linux-2.4.27-pa4-r2.orig/fs/exec.c linux-2.4.27-pa4-r2/fs/exec.c +--- linux-2.4.27-pa4-r2.orig/fs/exec.c 2004-12-08 18:24:03.808170424 +0100 ++++ linux-2.4.27-pa4-r2/fs/exec.c 2004-12-08 18:26:20.552382144 +0100 +@@ -382,6 +382,7 @@ + + down_write(¤t->mm->mmap_sem); + { ++ struct vm_area_struct *vma; + mpnt->vm_mm = mm; + #ifdef ARCH_STACK_GROWSUP + mpnt->vm_start = stack_base; +@@ -397,6 +398,12 @@ + mpnt->vm_pgoff = 0; + mpnt->vm_file = NULL; + mpnt->vm_private_data = (void *) 0; ++ vma = find_vma(current->mm, mpnt->vm_start); ++ if (vma) { ++ up_write(¤t->mm->mmap_sem); ++ kmem_cache_free(vm_area_cachep, mpnt); ++ return -ENOMEM; ++ } + insert_vm_struct(mm, mpnt); + mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; + } diff --git a/sys-kernel/hppa-sources/files/digest-hppa-sources-2.4.27_p4-r2 b/sys-kernel/hppa-sources/files/digest-hppa-sources-2.4.27_p4-r2 new file mode 100644 index 000000000000..ed0632124e01 --- /dev/null +++ b/sys-kernel/hppa-sources/files/digest-hppa-sources-2.4.27_p4-r2 @@ -0,0 +1,4 @@ +MD5 59a2e6fde1d110e2ffa20351ac8b4d9e linux-2.4.27.tar.bz2 30898453 +MD5 e6ee93aafa687932abd2c09fca43d4c3 patch-2.4.27-pa4.gz 727846 +MD5 010fe6b49e97365f12ce3f70376d5eb0 parisc-2.4.23-pa4-missing-ioctl-translations.diff 18091 +MD5 2758cec1dc37d4069a42fc7544599860 lasi-config-max-tag-queue-dep.patch 1455 |