summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgregkh@suse.de <gregkh@suse.de>2005-05-11 15:29:30 -0700
committerGreg KH <gregkh@suse.de>2005-05-12 10:00:25 -0700
commita1dbebb632300c22c0b68d248ea9b8991537a586 (patch)
treebaa98cecd0b3644549f1bfb0aef0a84862b71b21
parentff50504a94b7cd817f856cca5db69f01b2cebabf (diff)
downloadlinux-stable-a1dbebb632300c22c0b68d248ea9b8991537a586.tar.gz
linux-stable-a1dbebb632300c22c0b68d248ea9b8991537a586.tar.bz2
linux-stable-a1dbebb632300c22c0b68d248ea9b8991537a586.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 bfb61679080d..24f6ea075cf2 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -257,7 +257,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++);
@@ -1279,7 +1279,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));