ARM: 7527/1: uaccess: explicitly check __user pointer when !CPU_USE_DOMAINS
authorRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 7 Sep 2012 17:22:28 +0000 (18:22 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 9 Sep 2012 16:28:47 +0000 (17:28 +0100)
commit8404663f81d212918ff85f493649a7991209fa04
treeb695686fd2764914da245ef31649b1deb91ddafa
parent2b2040af0b64cd93e5d4df2494c4486cf604090d
ARM: 7527/1: uaccess: explicitly check __user pointer when !CPU_USE_DOMAINS

The {get,put}_user macros don't perform range checking on the provided
__user address when !CPU_HAS_DOMAINS.

This patch reworks the out-of-line assembly accessors to check the user
address against a specified limit, returning -EFAULT if is is out of
range.

[will: changed get_user register allocation to match put_user]
[rmk: fixed building on older ARM architectures]

Reported-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/assembler.h
arch/arm/include/asm/uaccess.h
arch/arm/lib/getuser.S
arch/arm/lib/putuser.S