mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-23 11:09:28 -05:00
* Heap improvements This commit makes the following improvements: 1. Add a check to heap_2 to track if a memory block is allocated to the application or not. The MSB of the size field is used for this purpose. The same check already exists in heap_4 and heap_5. This check prevents against double free. 2. Add a new flag configHEAP_CLEAR_MEMORY_ON_FREE to heap_2, heap_4 and heap_5. The application writer can set it to 1 in their FreeRTOSConfig.h to ensure that a block of memory allocated using pvPortMalloc is cleared (i.e. set to zero) when it is freed using vPortFree. If left undefined, configHEAP_CLEAR_MEMORY_ON_FREE defaults to 0 for backward compatibility. We recommend setting configHEAP_CLEAR_MEMORY_ON_FREE to 1 for better security. 3. Add a new API pvPortCalloc to heap_2, heap_4 and heap_5. This API has the following signature: void * pvPortCalloc( size_t xNum, size_t xSize ); It allocates memory for an array of xNum objects each of which is of xSize and initializes all bytes in the allocated storage to zero. If allocation succeeds, it returns a pointer to the lowest byte in the allocated memory block. On failure, it returns a null pointer. Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com> |
||
|---|---|---|
| .. | ||
| atomic.h | ||
| croutine.h | ||
| deprecated_definitions.h | ||
| event_groups.h | ||
| FreeRTOS.h | ||
| list.h | ||
| message_buffer.h | ||
| mpu_prototypes.h | ||
| mpu_wrappers.h | ||
| portable.h | ||
| projdefs.h | ||
| queue.h | ||
| semphr.h | ||
| stack_macros.h | ||
| StackMacros.h | ||
| stdint.readme | ||
| stream_buffer.h | ||
| task.h | ||
| timers.h | ||