-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

 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_sell...@symantec.com
Signed-off-by: Jeff Mahoney <je...@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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.13 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/

iEYEARECAAYFAkuGxkoACgkQLPWxlyuTD7LzfQCeKAaKtyEfbabuGzZyAEEnb8Mq
KEsAn1tKZtVSQ2A68TjwU/JN2LC3Mop7
=/CaR
-----END PGP SIGNATURE-----
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to