summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorotto <>2019-05-23 06:52:13 +0000
committerotto <>2019-05-23 06:52:13 +0000
commit4a7150c5ef6a5732e128c15ac47612bddf65481f (patch)
treea2d7561d03fbedea8c274b9853d98969683eb6ab /src
parent92e048bfdf9e27b1e10a7cfa4192630fc846f126 (diff)
downloadopenbsd-4a7150c5ef6a5732e128c15ac47612bddf65481f.tar.gz
openbsd-4a7150c5ef6a5732e128c15ac47612bddf65481f.tar.bz2
openbsd-4a7150c5ef6a5732e128c15ac47612bddf65481f.zip
Throw malloc_conceal and freezero into the mix.
Diffstat (limited to 'src')
-rw-r--r--src/regress/lib/libc/malloc/malloc_general/malloc_general.c11
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)
57int 57int
58main(int argc, char *argv[]) 58main(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;