All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RESEND] powerpc: fix handling of strnlen with zero len
@ 2010-03-17 20:55 Jeff Mahoney
  0 siblings, 0 replies; only message in thread
From: Jeff Mahoney @ 2010-03-17 20:55 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Steven Rostedt, Christian_Sellars

 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: Jeff Mahoney <jeffm@suse.com>
---
 arch/powerpc/lib/string.S |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/arch/powerpc/lib/string.S
+++ b/arch/powerpc/lib/string.S
@@ -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
-- 
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-03-17 20:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-17 20:55 [PATCH RESEND] powerpc: fix handling of strnlen with zero len Jeff Mahoney

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.