aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndrey Ryabinin <a.ryabinin@samsung.com>2015-03-24 11:31:23 -0400
committerJesper Nilsson <jespern@axis.com>2015-03-25 06:35:12 -0400
commitd939b52abe0cee9cc3167f554da6b864db86d3f2 (patch)
tree216a954433d77372b97def0e3959fce0f3c50641 /arch
parentd3dad475b2839b9964ef54211e135eb6fb9952f9 (diff)
cris: 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> Signed-off-by: Jesper Nilsson <jespern@axis.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/cris/include/asm/elf.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/cris/include/asm/elf.h b/arch/cris/include/asm/elf.h
index 30ded8fbf592..c2a394ff55ff 100644
--- a/arch/cris/include/asm/elf.h
+++ b/arch/cris/include/asm/elf.h
@@ -71,7 +71,7 @@ typedef unsigned long elf_fpregset_t;
71 the loader. We need to make sure that it is out of the way of the program 71 the loader. We need to make sure that it is out of the way of the program
72 that it will "exec", and that there is sufficient room for the brk. */ 72 that it will "exec", and that there is sufficient room for the brk. */
73 73
74#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) 74#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
75 75
76/* This yields a mask that user programs can use to figure out what 76/* This yields a mask that user programs can use to figure out what
77 instruction set this CPU supports. This could be done in user space, 77 instruction set this CPU supports. This could be done in user space,