summaryrefslogtreecommitdiffstats
path: root/arch/avr32
diff options
context:
space:
mode:
authorAndrey Ryabinin <a.ryabinin@samsung.com>2015-03-24 18:31:22 +0300
committerHans-Christian Egtvedt <egtvedt@samfundet.no>2015-04-13 18:48:55 +0200
commit940db9e654dab0cb68b5b9ec52f627945807aac9 (patch)
tree3c1d03aa5aaae3bad9d9631954e63ca42b533a41 /arch/avr32
parent39a8804455fb23f09157341d3ba7db6d7ae6ee76 (diff)
downloadlinux-940db9e654dab0cb68b5b9ec52f627945807aac9.tar.gz
linux-940db9e654dab0cb68b5b9ec52f627945807aac9.tar.bz2
linux-940db9e654dab0cb68b5b9ec52f627945807aac9.zip
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')
-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;
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