Skip to content

Commit 60b5950

Browse files
authored
Merge pull request #8 from alsaibie/dashing
added guard to prevent dealloc and realloc on null ptr
2 parents e0e8579 + 3b1a79f commit 60b5950

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

microros_olimex_e407_extensions/Src/allocators.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,23 @@ void * __freertos_allocate(size_t size, void * state){
1414
void __freertos_deallocate(void * pointer, void * state){
1515
(void) state;
1616
// printf("-- Free %d (prev: %d B)\n",getBlockSize(pointer), xPortGetFreeHeapSize());
17-
usedMemory -= getBlockSize(pointer);
18-
vPortFree(pointer);
17+
if (NULL != pointer){
18+
usedMemory -= getBlockSize(pointer);
19+
vPortFree(pointer);
20+
}
1921
}
2022

2123
void * __freertos_reallocate(void * pointer, size_t size, void * state){
2224
(void) state;
2325
// printf("-- Realloc %d -> %d (prev: %d B)\n",getBlockSize(pointer),size, xPortGetFreeHeapSize());
2426
absoluteUsedMemory += size;
2527
usedMemory += size;
26-
usedMemory -= getBlockSize(pointer);
27-
return pvPortRealloc(pointer,size);
28+
if (NULL != pointer){
29+
usedMemory -= getBlockSize(pointer);
30+
return pvPortRealloc(pointer,size);
31+
} else {
32+
return pvPortMalloc(size);
33+
}
2834
}
2935

3036
void * __freertos_zero_allocate(size_t number_of_elements, size_t size_of_element, void * state){

0 commit comments

Comments
 (0)