|
|
1.1 root 1: /*
2: * libc/gen/malloc/memok.c
3: * Test for corruption of malloc arena.
4: * Assumes contiguous allocation from __a_first to __a_top.
5: */
6:
7: #include <stdio.h>
8: #include <sys/malloc.h>
9:
10: /*
11: * Return 1 if malloc arena is ok,
12: * 0 if it is corrupted.
13: */
14: int
15: memok()
16: {
17: register MBLOCK *mp;
18: unsigned counter, flag, len;
19:
20: if (NULL == (mp = __a_first))
21: return ((NULL == __a_scanp) && !__a_count);
22: flag = 0;
23: for (counter = __a_count; counter--; ) {
24: if (mp == __a_scanp)
25: flag++;
26: if ((mp >= __a_top) || (mp < __a_first))
27: return 0; /* out of bounds */
28: mp = (len = realsize(mp->blksize)) ? bumpp(mp, len) : mp->uval.next;
29: }
30: return ((1 == flag) && (mp == __a_first));
31: }
32:
33: /* end of memok.c */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.