From 34b5bf35ddf6dd672f4f2a732fcf17a2c17e4f53 Mon Sep 17 00:00:00 2001 From: lxylxy123456 Date: Tue, 20 Dec 2022 21:14:24 -0500 Subject: [PATCH 1/2] Fix assertion error in lmm_add_free (e.g. when block=0x2345, size=2) --- lmm/lmm_add_free.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lmm/lmm_add_free.c b/lmm/lmm_add_free.c index 64a6dd2..21b940f 100644 --- a/lmm/lmm_add_free.c +++ b/lmm/lmm_add_free.c @@ -30,10 +30,9 @@ void lmm_add_free(lmm_t *lmm, void *block, oskit_size_t size) Here we can assume no such thing. */ min = (min + ALIGN_MASK) & ~ALIGN_MASK; max &= ~ALIGN_MASK; - assert(max >= min); /* If after alignment we have nothing left, we're done. */ - if (max == min) + if (max >= min) return; /* Add the block to the free list(s) of whatever region(s) it overlaps. From 725e3c5debdc5fa060fdb490c6e46a6824d0c7b8 Mon Sep 17 00:00:00 2001 From: lxylxy123456 Date: Tue, 20 Dec 2022 21:28:26 -0500 Subject: [PATCH 2/2] Fix typo --- lmm/lmm_add_free.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lmm/lmm_add_free.c b/lmm/lmm_add_free.c index 21b940f..b171b90 100644 --- a/lmm/lmm_add_free.c +++ b/lmm/lmm_add_free.c @@ -32,7 +32,7 @@ void lmm_add_free(lmm_t *lmm, void *block, oskit_size_t size) max &= ~ALIGN_MASK; /* If after alignment we have nothing left, we're done. */ - if (max >= min) + if (max <= min) return; /* Add the block to the free list(s) of whatever region(s) it overlaps.