Author: cognet
Date: Tue Apr 28 19:20:13 2009
New Revision: 191633
URL: http://svn.freebsd.org/changeset/base/191633

Log:
  Change the test at the beginning of strncmp(), from being if (len - 1) < 0
  to if (len == 0).
  The length is supposed to be unsigned, so len - 1 < 0 won't happen except
  if len == 0 anyway, and it would return 0 when it shouldn't, if len was
  > INT_MAX.
  
  Spotted out by:       Channa <channa kad gmail com>

Modified:
  head/lib/libc/arm/string/strncmp.S

Modified: head/lib/libc/arm/string/strncmp.S
==============================================================================
--- head/lib/libc/arm/string/strncmp.S  Tue Apr 28 17:41:52 2009        
(r191632)
+++ head/lib/libc/arm/string/strncmp.S  Tue Apr 28 19:20:13 2009        
(r191633)
@@ -33,10 +33,10 @@
 __FBSDID("$FreeBSD$");
 
 ENTRY(strncmp)
-/* if ((len - 1) < 0) return 0 */
-       subs    r2, r2, #1
-       movmi   r0, #0
-       movmi   pc, lr
+/* if (len == 0) return 0 */
+       cmp     r2, #0
+       moveq   r0, #0
+       RETeq
 
 /* ip == last src address to compare */
        add     ip, r0, r2
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to