diff options
-rw-r--r-- | src/regress/lib/libc/malloc/malloc_general/malloc_general.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/regress/lib/libc/malloc/malloc_general/malloc_general.c b/src/regress/lib/libc/malloc/malloc_general/malloc_general.c index b90e97ad15..8abc5210ca 100644 --- a/src/regress/lib/libc/malloc/malloc_general/malloc_general.c +++ b/src/regress/lib/libc/malloc/malloc_general/malloc_general.c | |||
@@ -57,7 +57,7 @@ check(u_char *p, size_t sz) | |||
57 | int | 57 | int |
58 | main(int argc, char *argv[]) | 58 | main(int argc, char *argv[]) |
59 | { | 59 | { |
60 | int count, p, i; | 60 | int count, p, r, i; |
61 | void * q; | 61 | void * q; |
62 | size_t sz; | 62 | size_t sz; |
63 | char mo[20]; | 63 | char mo[20]; |
@@ -92,7 +92,8 @@ main(int argc, char *argv[]) | |||
92 | #ifdef VERBOSE | 92 | #ifdef VERBOSE |
93 | printf("M %zu=", sz); | 93 | printf("M %zu=", sz); |
94 | #endif | 94 | #endif |
95 | a[i].p = malloc(sz); | 95 | r = arc4random_uniform(2); |
96 | a[i].p = r == 0 ? malloc_conceal(sz) : malloc(sz); | ||
96 | a[i].sz = sz; | 97 | a[i].sz = sz; |
97 | #ifdef VERBOSE | 98 | #ifdef VERBOSE |
98 | printf("%p\n", a[i].p); | 99 | printf("%p\n", a[i].p); |
@@ -122,7 +123,11 @@ main(int argc, char *argv[]) | |||
122 | for (i = 0; i < N; i++) { | 123 | for (i = 0; i < N; i++) { |
123 | if (a[i].p) | 124 | if (a[i].p) |
124 | check(a[i].p, a[i].sz); | 125 | check(a[i].p, a[i].sz); |
125 | free(a[i].p); | 126 | r = arc4random_uniform(2); |
127 | if (r) | ||
128 | free(a[i].p); | ||
129 | else | ||
130 | freezero(a[i].p, a[i].sz); | ||
126 | } | 131 | } |
127 | printf("\n"); | 132 | printf("\n"); |
128 | return 0; | 133 | return 0; |