mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-07-06 19:38:41 +03:00
add corrupted block scanning on overflow detection
This commit is contained in:
parent
083392fa15
commit
8a7d5804bc
3 changed files with 67 additions and 14 deletions
|
@ -11,6 +11,7 @@ static void double_free1();
|
|||
static void double_free2();
|
||||
static void corrupt_free();
|
||||
static void block_overflow1();
|
||||
static void block_overflow2();
|
||||
static void dangling_ptr_write();
|
||||
|
||||
int main() {
|
||||
|
@ -20,7 +21,8 @@ int main() {
|
|||
// double_free1();
|
||||
// double_free2();
|
||||
// corrupt_free();
|
||||
block_overflow1();
|
||||
// block_overflow1();
|
||||
block_overflow2();
|
||||
// dangling_ptr_write();
|
||||
|
||||
void* p1 = malloc(78);
|
||||
|
@ -51,6 +53,21 @@ static void block_overflow1() {
|
|||
free(p);
|
||||
}
|
||||
|
||||
static void block_overflow2() {
|
||||
void* p[100];
|
||||
for (int i = 0; i < 100; i++) {
|
||||
p[i] = mi_malloc(17);
|
||||
}
|
||||
memset(p[10], 0, 90);
|
||||
memset(p[40], 0, 90);
|
||||
memset(p[79], 0, 70);
|
||||
for (int i = 99; i >= 0; i-=2) {
|
||||
if (i > 0) free(p[i - 1]);
|
||||
free(p[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void dangling_ptr_write() {
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
uint8_t* p = (uint8_t*)mi_malloc(16);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue