diff --git a/firmware/buflib.c b/firmware/buflib.c index 5b837aa439..dcef84d5c1 100644 --- a/firmware/buflib.c +++ b/firmware/buflib.c @@ -713,13 +713,13 @@ buflib_free(struct buflib_context *ctx, int handle_num) } else { - /* Otherwise, set block to the newly-freed block, and mark it free, before - * continuing on, since the code below expects block to point to a free - * block which may have free space after it. - */ + /* Otherwise, set block to the newly-freed block, and mark it free, + * before continuing on, since the code below expects block to point + * to a free block which may have free space after it. */ block = freed_block; block->val = -block->val; } + next_block = block - block->val; /* Check if we are merging with the free space at alloc_end. */ if (next_block == ctx->alloc_end)