From: Andrey Ryabinin Date: Tue, 24 Mar 2015 15:31:22 +0000 (+0300) Subject: avr32: fix integer overflow in ELF_ET_DYN_BASE X-Git-Tag: v5.15~16018^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=940db9e654dab0cb68b5b9ec52f627945807aac9;p=platform%2Fkernel%2Flinux-starfive.git avr32: fix integer overflow in ELF_ET_DYN_BASE Almost all arches define ELF_ET_DYN_BASE as 2/3 of TASK_SIZE. Though it seems that some architectures do this in a wrong way. The problem is that 2*TASK_SIZE may overflow 32-bits so the real ELF_ET_DYN_BASE becomes wrong. Fix this overflow by dividing TASK_SIZE prior to multiplying: (TASK_SIZE / 3 * 2) Signed-off-by: Andrey Ryabinin Acked-by: Hans-Christian Egtvedt --- diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h index d232888..0388ece 100644 --- a/arch/avr32/include/asm/elf.h +++ b/arch/avr32/include/asm/elf.h @@ -84,7 +84,7 @@ typedef struct user_fpu_struct elf_fpregset_t; the loader. We need to make sure that it is out of the way of the program that it will "exec", and that there is sufficient room for the brk. */ -#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) /* This yields a mask that user programs can use to figure out what