From 4a7150c5ef6a5732e128c15ac47612bddf65481f Mon Sep 17 00:00:00 2001 From: otto <> Date: Thu, 23 May 2019 06:52:13 +0000 Subject: Throw malloc_conceal and freezero into the mix. --- src/regress/lib/libc/malloc/malloc_general/malloc_general.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/regress/lib/libc/malloc/malloc_general/malloc_general.c') 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) int main(int argc, char *argv[]) { - int count, p, i; + int count, p, r, i; void * q; size_t sz; char mo[20]; @@ -92,7 +92,8 @@ main(int argc, char *argv[]) #ifdef VERBOSE printf("M %zu=", sz); #endif - a[i].p = malloc(sz); + r = arc4random_uniform(2); + a[i].p = r == 0 ? malloc_conceal(sz) : malloc(sz); a[i].sz = sz; #ifdef VERBOSE printf("%p\n", a[i].p); @@ -122,7 +123,11 @@ main(int argc, char *argv[]) for (i = 0; i < N; i++) { if (a[i].p) check(a[i].p, a[i].sz); - free(a[i].p); + r = arc4random_uniform(2); + if (r) + free(a[i].p); + else + freezero(a[i].p, a[i].sz); } printf("\n"); return 0; -- cgit v1.2.3-55-g6feb