]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user()
authorChristophe Leroy <christophe.leroy@c-s.fr>
Thu, 23 Jan 2020 08:34:18 +0000 (08:34 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Jun 2020 08:24:58 +0000 (10:24 +0200)
commitf7ce58abbe9b4e7d6ace23f593235dd1a8177b59
treea01a2d4ab267adbff802f1bf74b205883b6fb992
parent73d73be34ad40bce2abb7f85cb3f97b9730ee474
lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user()

commit ab10ae1c3bef56c29bac61e1201c752221b87b41 upstream.

The range passed to user_access_begin() by strncpy_from_user() and
strnlen_user() starts at 'src' and goes up to the limit of userspace
although reads will be limited by the 'count' param.

On 32 bits powerpc (book3s/32) access has to be granted for each
256Mbytes segment and the cost increases with the number of segments to
unlock.

Limit the range with 'count' param.

Fixes: 594cc251fdd0 ("make 'user_access_begin()' do 'access_ok()'")
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Miles Chen <miles.chen@mediatek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
lib/strncpy_from_user.c
lib/strnlen_user.c