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

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
...@@ -71,7 +71,7 @@ _GLOBAL(strcmp) ...@@ -71,7 +71,7 @@ _GLOBAL(strcmp)
_GLOBAL(strncmp) _GLOBAL(strncmp)
PPC_LCMPI r5,0 PPC_LCMPI r5,0
beqlr ble- 2f
mtctr r5 mtctr r5
addi r5,r3,-1 addi r5,r3,-1
addi r4,r4,-1 addi r4,r4,-1
...@@ -82,6 +82,8 @@ _GLOBAL(strncmp) ...@@ -82,6 +82,8 @@ _GLOBAL(strncmp)
beqlr 1 beqlr 1
bdnzt eq,1b bdnzt eq,1b
blr blr
2: li r3,0
blr
_GLOBAL(strlen) _GLOBAL(strlen)
addi r4,r3,-1 addi r4,r3,-1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment