Page MenuHomeFreeBSD

D11621.id31376.diff
No OneTemporary

D11621.id31376.diff

Index: lib/libc/tests/stdlib/mergesort_test.c
===================================================================
--- lib/libc/tests/stdlib/mergesort_test.c
+++ lib/libc/tests/stdlib/mergesort_test.c
@@ -51,12 +51,15 @@
* Test from 2^BASE_EXP to 2^MAX_EXP elements of type SORT_TYPE
*/
#define BASE_EXP 10
-#define MAX_EXP 15
+#define MAX_EXP 18
#define SORT_TYPE int
// Number of chars in the odd elt subarray
#define NCHARS 5
+// Canary value to verify buffer is intact
+#define CANARY 0XDEADBEEF
+
#define check_array_eq(it, len, expected, actual) do { \
for (it = 0; it < len; it++) \
ATF_CHECK_MSG( \
@@ -410,12 +413,16 @@
struct big sresvector[IVEC_LEN];
struct big testvector[IVEC_LEN];
int i, j;
+ size_t size = SPACE_LEN * sizeof(int);
for (j = 2; j < IVEC_LEN; j++) {
/* Populate test vectors */
- for (i = 0; i < j; i++)
+ for (i = 0; i < j; i++) {
testvector[i].value = sresvector[i].value =
initvector[i];
+ memset(testvector[i].spacetaker, CANARY, size);
+ memset(sresvector[i].spacetaker, CANARY, size);
+ }
/* Sort using mergesort(3) */
mergesort(testvector, j, sizeof(testvector[0]), bigsorthelp);
@@ -424,11 +431,15 @@
bigsorthelp);
/* Compare results */
- for (i = 0; i < j; i++)
+ for (i = 0; i < j; i++) {
ATF_CHECK_MSG(testvector[i].value ==
sresvector[i].value,
"item at index %d didn't match: %d != %d\n",
i, testvector[i].value, sresvector[i].value);
+ ATF_CHECK_MSG(memcmp(testvector[i].spacetaker,
+ sresvector[i].spacetaker, size) == 0,
+ "Spacetaker corrupted at index %d\n", i);
+ }
}
}
Index: lib/libc/tests/stdlib/test-sort.h
===================================================================
--- lib/libc/tests/stdlib/test-sort.h
+++ lib/libc/tests/stdlib/test-sort.h
@@ -33,6 +33,9 @@
#include <atf-c.h>
+// Number of ints in the bigstruct array
+#define SPACE_LEN 100
+
/*
* Integer comparison function for stdlib sorting algorithms
*/
@@ -111,7 +114,7 @@
*/
struct big {
int value;
- int spacetaker[100];
+ int spacetaker[SPACE_LEN];
};
/*

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 25, 12:12 AM (18 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30283132
Default Alt Text
D11621.id31376.diff (2 KB)

Event Timeline