aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib/strncpy_from_user.c
diff options
context:
space:
mode:
authorKP Singh <kpsingh@chromium.org>2020-06-04 16:50:11 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2020-06-04 19:06:25 -0700
commit07887358993d48571f0f3a25cfce715564b35587 (patch)
tree963fa448037023b18a406a6965d8b898a8743980 /lib/strncpy_from_user.c
parentlib/math: avoid trailing newline hidden in pr_fmt() (diff)
downloadwireguard-linux-07887358993d48571f0f3a25cfce715564b35587.tar.xz
wireguard-linux-07887358993d48571f0f3a25cfce715564b35587.zip
lib: Add might_fault() to strncpy_from_user.
When updating a piece of broken logic from using get_user to strncpy_from_user, we noticed that a warning which is expected when calling a function that might fault from an atomic context with pagefaults enabled disappeared. Not having this warning in place can lead to calling strncpy_from_user from an atomic context and eventually kernel crashes/stack corruption. Signed-off-by: KP Singh <kpsingh@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Jann Horn <jannh@google.com> Cc: Christophe Leroy <christophe.leroy@c-s.fr> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20200414225705.255711-1-kpsingh@chromium.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/strncpy_from_user.c')
-rw-r--r--lib/strncpy_from_user.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c
index b90ec550183a..34696a348864 100644
--- a/lib/strncpy_from_user.c
+++ b/lib/strncpy_from_user.c
@@ -98,6 +98,7 @@ long strncpy_from_user(char *dst, const char __user *src, long count)
{
unsigned long max_addr, src_addr;
+ might_fault();
if (unlikely(count <= 0))
return 0;