From 006af6ac76d3dd6248999f097e14d37fed5cf421 Mon Sep 17 00:00:00 2001 From: Alexander Krutwig Date: Tue, 14 Jun 2016 09:26:12 +0200 Subject: score: Improve heap protection Check block pointers of deferred free list before use. --- cpukit/score/src/heapallocate.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cpukit/score/src/heapallocate.c b/cpukit/score/src/heapallocate.c index a76ac04f49..77ed582ce1 100644 --- a/cpukit/score/src/heapallocate.c +++ b/cpukit/score/src/heapallocate.c @@ -43,9 +43,14 @@ uintptr_t count = 0; for ( count = 0; count < blocks_to_free_count; ++count ) { - Heap_Block *next_block_to_free = - block_to_free->Protection_begin.next_delayed_free_block; + Heap_Block *next_block_to_free; + + if ( !_Heap_Is_block_in_heap( heap, block_to_free ) ) { + _Heap_Protection_block_error( heap, block_to_free ); + } + next_block_to_free = + block_to_free->Protection_begin.next_delayed_free_block; block_to_free->Protection_begin.next_delayed_free_block = HEAP_PROTECTION_OBOLUS; -- cgit v1.2.3