summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2005-05-11 00:10:44 -0700
committerGreg KH <gregkh@suse.de>2005-05-16 21:07:05 -0700
commita84a505956f5c795a9ab3d60d97b6b91a27aa571 (patch)
tree440fdf47fcddf8b0d615667b418981a511d16e30
parentd3f0fcec2d50a18a84c4f3dd7683206ed37ca009 (diff)
downloadlinux-a84a505956f5c795a9ab3d60d97b6b91a27aa571.tar.gz
linux-a84a505956f5c795a9ab3d60d97b6b91a27aa571.tar.bz2
linux-a84a505956f5c795a9ab3d60d97b6b91a27aa571.zip
[PATCH] fix Linux kernel ELF core dump privilege elevation
As reported by Paul Starzetz <ihaquer@isec.pl> Reference: CAN-2005-1263 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--fs/binfmt_elf.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index ce9423bb2de3..c374be51b041 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -251,7 +251,7 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr * exec,
}
/* Populate argv and envp */
- p = current->mm->arg_start;
+ p = current->mm->arg_end = current->mm->arg_start;
while (argc-- > 0) {
size_t len;
__put_user((elf_addr_t)p, argv++);
@@ -1301,7 +1301,7 @@ static void fill_prstatus(struct elf_prstatus *prstatus,
static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p,
struct mm_struct *mm)
{
- int i, len;
+ unsigned int i, len;
/* first copy the parameters from user space */
memset(psinfo, 0, sizeof(struct elf_prpsinfo));