From: Ralf Baechle Date: Tue, 4 Nov 2014 10:54:29 +0000 (+0100) Subject: MIPS: Fix strnlen_user() return value in case of overlong strings. X-Git-Tag: Ubuntu-5.2.0-15.16~12476^2~2 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=0097761013253930341e23723d64e0845c3f9edd;p=mirror_ubuntu-eoan-kernel.git MIPS: Fix strnlen_user() return value in case of overlong strings. We were returning maxlen like the userland strnlen if no '\0' character was encountered while the kernel version is expected to return a value larger than maxlen. Fixed to return maxlen + 1. Signed-off-by: Ralf Baechle --- diff --git a/arch/mips/lib/strnlen_user.S b/arch/mips/lib/strnlen_user.S index f3af6995e2a6..7d12c0dded3d 100644 --- a/arch/mips/lib/strnlen_user.S +++ b/arch/mips/lib/strnlen_user.S @@ -40,9 +40,11 @@ FEXPORT(__strnlen_\func\()_nocheck_asm) .else EX(lbe, t0, (v0), .Lfault\@) .endif - PTR_ADDIU v0, 1 + .set noreorder bnez t0, 1b -1: PTR_SUBU v0, a0 +1: PTR_ADDIU v0, 1 + .set reorder + PTR_SUBU v0, a0 jr ra END(__strnlen_\func\()_asm)