Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 637a9902 authored by Jeff Mahoney's avatar Jeff Mahoney Committed by Benjamin Herrenschmidt
Browse files

powerpc: Fix handling of strncmp with zero len



Commit 0119536c, which added the assembly version of strncmp to
powerpc, mentions that it adds two instructions to the version from
boot/string.S to allow it to handle len=0. Unfortunately, it doesn't
always return 0 when that is the case. The length is passed in r5, but
the return value is passed back in r3. In certain cases, this will
happen to work. Otherwise it will pass back the address of the first
string as the return value.

This patch lifts the len <= 0 handling code from memcpy to handle that
case.

Reported by: Christian_Sellars@symantec.com
Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
CC: <stable@kernel.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 6d1bdd2a
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ _GLOBAL(strcmp)

_GLOBAL(strncmp)
	PPC_LCMPI r5,0
	beqlr
	ble-	2f
	mtctr	r5
	addi	r5,r3,-1
	addi	r4,r4,-1
@@ -82,6 +82,8 @@ _GLOBAL(strncmp)
	beqlr	1
	bdnzt	eq,1b
	blr
2:	li	r3,0
	blr

_GLOBAL(strlen)
	addi	r4,r3,-1