summaryrefslogtreecommitdiff
path: root/src/malloc
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-06-06 18:10:43 -0400
committerRich Felker <dalias@aerifal.cx>2011-06-06 18:10:43 -0400
commit71a80c5767aa4e6b7cbc2b58feef3cfca76e29fe (patch)
tree5234adea31714c54849ecfad2c223c6b5d1ee510 /src/malloc
parentda88b16a221c9d327e1bfa61dd6f4f08dacce57a (diff)
downloadmusl-71a80c5767aa4e6b7cbc2b58feef3cfca76e29fe.tar.gz
musl-71a80c5767aa4e6b7cbc2b58feef3cfca76e29fe.tar.bz2
musl-71a80c5767aa4e6b7cbc2b58feef3cfca76e29fe.tar.xz
musl-71a80c5767aa4e6b7cbc2b58feef3cfca76e29fe.zip
use volatile pointers for intentional-crash code.
Diffstat (limited to 'src/malloc')
-rw-r--r--src/malloc/malloc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/malloc/malloc.c b/src/malloc/malloc.c
index bc8382e4..1a1a51f4 100644
--- a/src/malloc/malloc.c
+++ b/src/malloc/malloc.c
@@ -395,7 +395,7 @@ void *realloc(void *p, size_t n)
size_t oldlen = n0 + extra;
size_t newlen = n + extra;
/* Crash on realloc of freed chunk */
- if ((uintptr_t)base < mal.brk) *(char *)0=0;
+ if ((uintptr_t)base < mal.brk) *(volatile char *)0=0;
if (newlen < PAGE_SIZE && (new = malloc(n))) {
memcpy(new, p, n-OVERHEAD);
free(p);
@@ -458,7 +458,7 @@ void free(void *p)
char *base = (char *)self - extra;
size_t len = CHUNK_SIZE(self) + extra;
/* Crash on double free */
- if ((uintptr_t)base < mal.brk) *(char *)0=0;
+ if ((uintptr_t)base < mal.brk) *(volatile char *)0=0;
__munmap(base, len);
return;
}