X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Frtos%2FFreeRTOS.c;h=eeab1341dba3671c2a2782ab0c7684ebca91fbcf;hp=24397ef68838a206b96bd98ac8c536d01b5ed067;hb=d31803d3d9bc4750ff34d14cffb809c916401d1e;hpb=32862ed9f80e95ffca837247c905cde6857229e8 diff --git a/src/rtos/FreeRTOS.c b/src/rtos/FreeRTOS.c index 24397ef688..eeab1341db 100644 --- a/src/rtos/FreeRTOS.c +++ b/src/rtos/FreeRTOS.c @@ -231,12 +231,13 @@ static int FreeRTOS_update_threads( struct rtos *rtos ) // Find out how many lists are needed to be read from pxReadyTasksLists, int64_t max_used_priority = 0; retval = target_read_buffer( rtos->target, rtos->symbols[FreeRTOS_VAL_uxTopUsedPriority].address, param->pointer_width, (uint8_t *)&max_used_priority ); + if (retval != ERROR_OK) + return retval; - - symbol_address_t* list_of_lists = (symbol_address_t *)malloc( sizeof( symbol_address_t ) * ( max_used_priority + 5 ) ); + symbol_address_t* list_of_lists = (symbol_address_t *)malloc( sizeof( symbol_address_t ) * ( max_used_priority+1 + 5 ) ); int num_lists; - for( num_lists = 0; num_lists < max_used_priority; num_lists++ ) + for( num_lists = 0; num_lists <= max_used_priority; num_lists++ ) { list_of_lists[num_lists] = rtos->symbols[FreeRTOS_VAL_pxReadyTasksLists].address + num_lists * param->list_width; }