diff options
-rw-r--r-- | src/regress/lib/libc/malloc/malloc0test/malloc0test.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/src/regress/lib/libc/malloc/malloc0test/malloc0test.c b/src/regress/lib/libc/malloc/malloc0test/malloc0test.c index a782424ba1..eb00954f92 100644 --- a/src/regress/lib/libc/malloc/malloc0test/malloc0test.c +++ b/src/regress/lib/libc/malloc/malloc0test/malloc0test.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: malloc0test.c,v 1.3 2004/02/11 08:16:00 deraadt Exp $ */ | 1 | /* $OpenBSD: malloc0test.c,v 1.4 2004/08/04 12:02:57 otto Exp $ */ |
2 | /* | 2 | /* |
3 | * Public domain. 2001, Theo de Raadt | 3 | * Public domain. 2001, Theo de Raadt |
4 | */ | 4 | */ |
@@ -58,10 +58,8 @@ char *prot_table[] = { | |||
58 | int | 58 | int |
59 | main(int argc, char *argv[]) | 59 | main(int argc, char *argv[]) |
60 | { | 60 | { |
61 | caddr_t rblob = malloc(1); | 61 | caddr_t blob; |
62 | caddr_t zblob = malloc(0); | 62 | int size, tsize; |
63 | caddr_t *blobp, blob; | ||
64 | int size, rsize, tsize; | ||
65 | int prot; | 63 | int prot; |
66 | int rval = 0, fuckup = 0; | 64 | int rval = 0, fuckup = 0; |
67 | long limit = 200000, count; | 65 | long limit = 200000, count; |
@@ -101,32 +99,21 @@ usage: | |||
101 | exit(rval); | 99 | exit(rval); |
102 | } | 100 | } |
103 | 101 | ||
104 | if (size == 0) { | 102 | tsize = size == 0 ? 16 : size; |
105 | blobp = &zblob; | 103 | fuckup = 0; |
106 | tsize = 16; | ||
107 | } else { | ||
108 | blobp = &rblob; | ||
109 | tsize = size; | ||
110 | } | ||
111 | |||
112 | rsize = blob - *blobp; | ||
113 | fuckup = SIZE < 16 && size >= rsize; | ||
114 | prot = test(blob, tsize); | 104 | prot = test(blob, tsize); |
115 | 105 | ||
116 | if (size == 0 && rsize < 16) | ||
117 | fuckup = 1; | ||
118 | if (size == 0 && prot < 2) | 106 | if (size == 0 && prot < 2) |
119 | fuckup = 1; | 107 | fuckup = 1; |
120 | 108 | ||
121 | if (fuckup) { | 109 | if (fuckup) { |
122 | printf("%8p %6d %6d %20s %10s\n", blob, size, rsize, | 110 | printf("%8p %6d %20s %10s\n", blob, size, |
123 | prot_table[prot], fuckup ? "fuckup" : ""); | 111 | prot_table[prot], fuckup ? "fuckup" : ""); |
124 | rval = 1; | 112 | rval = 1; |
125 | } | 113 | } |
126 | *blobp = blob; | ||
127 | 114 | ||
128 | if (!silent && count % 100000 == 0 && count != 0) | 115 | if (!silent && count % 100000 == 0 && count != 0) |
129 | fprintf(stderr, "count = %d\n", count); | 116 | fprintf(stderr, "count = %ld\n", count); |
130 | } | 117 | } |
131 | 118 | ||
132 | return rval; | 119 | return rval; |