diff options
author | Andrey Ryabinin <a.ryabinin@samsung.com> | 2015-03-24 11:31:22 -0400 |
---|---|---|
committer | Hans-Christian Egtvedt <egtvedt@samfundet.no> | 2015-04-13 12:48:55 -0400 |
commit | 940db9e654dab0cb68b5b9ec52f627945807aac9 (patch) | |
tree | 3c1d03aa5aaae3bad9d9631954e63ca42b533a41 /arch/avr32/include | |
parent | 39a8804455fb23f09157341d3ba7db6d7ae6ee76 (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.h | 2 |
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 |