diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-07-26 19:10:58 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-07-26 19:10:58 +0300 |
| commit | 9e2242a8e6f8eaf76a49f68b3ced64d6ba35047d (patch) | |
| tree | c74f5c2c9ecb2254fe79d01782dbafea586f1eef /common | |
| parent | 1cc2a1f4b044df8f0d244f1940a5701d1100ddc5 (diff) | |
| download | kmi-9e2242a8e6f8eaf76a49f68b3ced64d6ba35047d.tar.gz kmi-9e2242a8e6f8eaf76a49f68b3ced64d6ba35047d.zip | |
fix possible segfault with non-gig memory sizes
Diffstat (limited to 'common')
| -rw-r--r-- | common/pmem.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/common/pmem.c b/common/pmem.c index 80599ef..8169b88 100644 --- a/common/pmem.c +++ b/common/pmem.c @@ -199,6 +199,10 @@ static void __mark_bucket_page_free(struct mm_bucket *bucket, enum mm_order iter = bucket->order; reverse_foreach_order_init(iter) { + struct mm_branch *tree = bucket->tree[iter]; + if (!tree) + continue; + __mark_free(bucket->tree[iter], fixup_addr, order, bucket->order, iter); } @@ -272,6 +276,10 @@ static void __mark_bucket_page_used(struct mm_bucket *bucket, { pm_t fixed_addr = addr - bucket->base; reverse_foreach_order(iter) { + struct mm_branch *tree = bucket->tree[iter]; + if (!tree) + continue; + __mark_used(bucket->tree[iter], fixed_addr, order, bucket->order, iter); } |
