[PATCH] Fix test-wcsncmp BUS errors.

David Miller davem@davemloft.net
Tue Jul 21 21:39:00 GMT 2015


As currently coded, the strncmp tests dereference unaligned pointers
when setting up the test patterns.  This results in SIGBUS errors
on Sparc, for example.

Force the alignment arguments to be aligned properly for the character
type being tested.

Ok to commit?

2015-07-21  David S. Miller  <davem@davemloft.net>

	* string/test-strncmp.c (do_test_limit): Align align1 and align2
	to CHARBYTES.
	(do_test): Likewise.

diff --git a/string/test-strncmp.c b/string/test-strncmp.c
index fb57a9b..277eb2c 100644
--- a/string/test-strncmp.c
+++ b/string/test-strncmp.c
@@ -156,6 +156,9 @@ do_test_limit (size_t align1, size_t align2, size_t len, size_t n, int max_char,
   size_t i, align_n;
   CHAR *s1, *s2;
 
+  align1 &= ~(CHARBYTES - 1);
+  align2 &= ~(CHARBYTES - 1);
+
   if (n == 0)
     {
       s1 = (CHAR *) (buf1 + page_size);
@@ -204,6 +207,9 @@ do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char,
   size_t i;
   CHAR *s1, *s2;
 
+  align1 &= ~(CHARBYTES - 1);
+  align2 &= ~(CHARBYTES - 1);
+
   if (n == 0)
     return;
 



More information about the Libc-alpha mailing list