about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2011-03-29 10:40:28 +0200
committerAndreas Schwab <schwab@redhat.com>2011-04-05 13:45:23 +0200
commite513f34605747f43eed259519b6fb847591861d2 (patch)
tree7b7395a31d3c00433a8a0d1b30a94824bfbef7f5
parent8cb700c0f3a503eaef660759f17fb787d0dec616 (diff)
downloadglibc-e513f34605747f43eed259519b6fb847591861d2.tar.gz
glibc-e513f34605747f43eed259519b6fb847591861d2.tar.xz
glibc-e513f34605747f43eed259519b6fb847591861d2.zip
Fix strncmp page test to limit length to size of object
-rw-r--r--ChangeLog5
-rw-r--r--string/test-strncmp.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index fe86bc9944..2f2ec75e78 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-05  Andreas Schwab  <schwab@redhat.com>
+
+	* string/test-strncmp.c (do_page_test): Limit length to size of
+	object.
+
 2011-04-03  Ulrich Drepper  <drepper@gmail.com>
 
 	* sysdeps/x86_64/cacheinfo.c (intel_02_known): Fix typo in table.
diff --git a/string/test-strncmp.c b/string/test-strncmp.c
index 00971df22f..880b2be740 100644
--- a/string/test-strncmp.c
+++ b/string/test-strncmp.c
@@ -204,6 +204,7 @@ do_page_test (size_t offset1, size_t offset2, char *s2)
 {
   char *s1;
   int exp_result;
+  size_t max_offset = offset1 > offset2 ? offset1 : offset2;
 
   if (offset1 >= page_size || offset2 >= page_size)
     return;
@@ -211,12 +212,12 @@ do_page_test (size_t offset1, size_t offset2, char *s2)
   s1 = (char *) (buf1 + offset1);
   s2 += offset2;
 
-  exp_result= *s1;
+  exp_result = *s1;
 
   FOR_EACH_IMPL (impl, 0)
     {
-      check_result (impl, s1, s2, page_size, -exp_result);
-      check_result (impl, s2, s1, page_size, exp_result);
+      check_result (impl, s1, s2, page_size - max_offset, -exp_result);
+      check_result (impl, s2, s1, page_size - max_offset, exp_result);
     }
 }