diff options
Diffstat (limited to 'main/musl/0005-mitigate-vsz-explotion.patch')
-rw-r--r-- | main/musl/0005-mitigate-vsz-explotion.patch | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/main/musl/0005-mitigate-vsz-explotion.patch b/main/musl/0005-mitigate-vsz-explotion.patch deleted file mode 100644 index 93e4a883df..0000000000 --- a/main/musl/0005-mitigate-vsz-explotion.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff --git a/src/malloc/malloc.c b/src/malloc/malloc.c -index eb68d55..b90636c 100644 ---- a/src/malloc/malloc.c -+++ b/src/malloc/malloc.c -@@ -464,18 +464,6 @@ void free(void *p) - if (next->psize != self->csize) a_crash(); - - for (;;) { -- /* Replace middle of large chunks with fresh zero pages */ -- if (reclaim && (self->psize & next->csize & C_INUSE)) { -- uintptr_t a = (uintptr_t)self + SIZE_ALIGN+PAGE_SIZE-1 & -PAGE_SIZE; -- uintptr_t b = (uintptr_t)next - SIZE_ALIGN & -PAGE_SIZE; --#if 1 -- __madvise((void *)a, b-a, MADV_DONTNEED); --#else -- __mmap((void *)a, b-a, PROT_READ|PROT_WRITE, -- MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0); --#endif -- } -- - if (self->psize & next->csize & C_INUSE) { - self->csize = final_size | C_INUSE; - next->psize = final_size | C_INUSE; -@@ -505,6 +493,9 @@ void free(void *p) - } - } - -+ if (!(mal.binmap & 1ULL<<i)) -+ a_or_64(&mal.binmap, 1ULL<<i); -+ - self->csize = final_size; - next->psize = final_size; - unlock(mal.free_lock); -@@ -514,8 +505,17 @@ void free(void *p) - self->next->prev = self; - self->prev->next = self; - -- if (!(mal.binmap & 1ULL<<i)) -- a_or_64(&mal.binmap, 1ULL<<i); -+ /* Replace middle of large chunks with fresh zero pages */ -+ if (reclaim) { -+ uintptr_t a = (uintptr_t)self + SIZE_ALIGN+PAGE_SIZE-1 & -PAGE_SIZE; -+ uintptr_t b = (uintptr_t)next - SIZE_ALIGN & -PAGE_SIZE; -+#if 1 -+ __madvise((void *)a, b-a, MADV_DONTNEED); -+#else -+ __mmap((void *)a, b-a, PROT_READ|PROT_WRITE, -+ MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0); -+#endif -+ } - - unlock_bin(i); - } |