aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32/include
diff options
context:
space:
mode:
authorAndrey Ryabinin <a.ryabinin@samsung.com>2015-03-24 11:31:22 -0400
committerHans-Christian Egtvedt <egtvedt@samfundet.no>2015-04-13 12:48:55 -0400
commit940db9e654dab0cb68b5b9ec52f627945807aac9 (patch)
tree3c1d03aa5aaae3bad9d9631954e63ca42b533a41 /arch/avr32/include
parent39a8804455fb23f09157341d3ba7db6d7ae6ee76 (diff)
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 <a.ryabinin@samsung.com> Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Diffstat (limited to 'arch/avr32/include')
-rw-r--r--arch/avr32/include/asm/elf.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
index d232888b99d5..0388ece75b02 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;
84 the loader. We need to make sure that it is out of the way of the program 84 the loader. We need to make sure that it is out of the way of the program
85 that it will "exec", and that there is sufficient room for the brk. */ 85 that it will "exec", and that there is sufficient room for the brk. */
86 86
87#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) 87#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
88 88
89 89
90/* This yields a mask that user programs can use to figure out what 90/* This yields a mask that user programs can use to figure out what