From d7f9142833bcf56509b2257c6f2d930f383284fd Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Fri, 23 May 2025 22:45:04 +0200 Subject: [PATCH] Berry fix POOL32 pointer comparison (#23468) --- lib/libesp32/berry/src/be_mem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libesp32/berry/src/be_mem.c b/lib/libesp32/berry/src/be_mem.c index 00a65272c..f38e33ab5 100644 --- a/lib/libesp32/berry/src/be_mem.c +++ b/lib/libesp32/berry/src/be_mem.c @@ -270,7 +270,7 @@ static void free_from_pool(bvm *vm, void* ptr, size_t old_size) { while (pool16) { int32_t offset = (uint8_t*)ptr - (uint8_t*) &pool16->lines[0]; // serial_debug("free_from_pool ptr=%p pool=%p offset=%i\n", ptr,pool16, offset); - if ((offset >= 0) && (offset < POOL16_SLOTS*16) && ((offset & 0x0F) == 0)) { + if ((offset >= 0) && (offset < POOL16_SLOTS*POOL16_SIZE) && ((offset & 0x0F) == 0)) { int bit = offset >> 4; // serial_debug("free_from_pool ptr=%p fond pool=%p bit=%i\n", ptr, pool16, bit); // bitSet(pool16->bitmap, bit); @@ -285,7 +285,7 @@ static void free_from_pool(bvm *vm, void* ptr, size_t old_size) { while (pool32) { int32_t offset = (uint8_t*)ptr - (uint8_t*) &pool32->lines[0]; // serial_debug("free_from_pool pool=%p offset=%i\n", pool32, offset); - if ((offset >= 0) && (offset < POOL16_SLOTS*16) && ((offset & 0x1F) == 0)) { + if ((offset >= 0) && (offset < POOL32_SLOTS*POOL32_SIZE) && ((offset & 0x1F) == 0)) { int bit = offset >> 5; // serial_debug("free_from_pool ptr=%p fond pool=%p bit=%i\n", ptr, pool32, bit); // bitSet(pool32->bitmap, bit);