summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2016-09-01 02:04:21 +0300
committerKees Cook <keescook@chromium.org>2016-09-06 22:17:29 +0300
commit81409e9e28058811c9ea865345e1753f8f677e44 (patch)
tree6573d95f94ea5b164035a9527a60d08650c29329 /include
parente6971009a95a74f28c58bbae415c40effad1226c (diff)
downloadlinux-81409e9e28058811c9ea865345e1753f8f677e44.tar.xz
usercopy: fold builtin_const check into inline function
Instead of having each caller of check_object_size() need to remember to check for a const size parameter, move the check into check_object_size() itself. This actually matches the original implementation in PaX, though this commit cleans up the now-redundant builtin_const() calls in the various architectures. Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/thread_info.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
index cbd8990e2e77..10c9e601398b 100644
--- a/include/linux/thread_info.h
+++ b/include/linux/thread_info.h
@@ -121,7 +121,8 @@ extern void __check_object_size(const void *ptr, unsigned long n,
static inline void check_object_size(const void *ptr, unsigned long n,
bool to_user)
{
- __check_object_size(ptr, n, to_user);
+ if (!__builtin_constant_p(n))
+ __check_object_size(ptr, n, to_user);
}
#else
static inline void check_object_size(const void *ptr, unsigned long n,