mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-03 04:34:31 +02:00
Merge branch 'bugfix/freertos_addition_overflow_v4.3' into 'release/v4.3'
freertos: Fix addition overflow (v4.3) See merge request espressif/esp-idf!13422
This commit is contained in:
@@ -395,6 +395,12 @@ Queue_t * const pxQueue = xQueue;
|
|||||||
xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
|
xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check for multiplication overflow. */
|
||||||
|
configASSERT( ( uxItemSize == 0 ) || ( uxQueueLength == ( xQueueSizeInBytes / uxItemSize ) ) );
|
||||||
|
|
||||||
|
/* Check for addition overflow. */
|
||||||
|
configASSERT( ( sizeof( Queue_t ) + xQueueSizeInBytes ) > xQueueSizeInBytes );
|
||||||
|
|
||||||
/* Allocate the queue and storage area. Justification for MISRA
|
/* Allocate the queue and storage area. Justification for MISRA
|
||||||
deviation as follows: pvPortMalloc() always ensures returned memory
|
deviation as follows: pvPortMalloc() always ensures returned memory
|
||||||
blocks are aligned per the requirements of the MCU stack. In this case
|
blocks are aligned per the requirements of the MCU stack. In this case
|
||||||
|
@@ -256,8 +256,15 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer,
|
|||||||
this is a quirk of the implementation that means otherwise the free
|
this is a quirk of the implementation that means otherwise the free
|
||||||
space would be reported as one byte smaller than would be logically
|
space would be reported as one byte smaller than would be logically
|
||||||
expected. */
|
expected. */
|
||||||
|
if( xBufferSizeBytes < ( xBufferSizeBytes + 1 + sizeof( StreamBuffer_t ) ) )
|
||||||
|
{
|
||||||
xBufferSizeBytes++;
|
xBufferSizeBytes++;
|
||||||
pucAllocatedMemory = ( uint8_t * ) pvPortMalloc( xBufferSizeBytes + sizeof( StreamBuffer_t ) ); /*lint !e9079 malloc() only returns void*. */
|
pucAllocatedMemory = ( uint8_t * ) pvPortMalloc( xBufferSizeBytes + sizeof( StreamBuffer_t ) ); /*lint !e9079 malloc() only returns void*. */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pucAllocatedMemory = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if( pucAllocatedMemory != NULL )
|
if( pucAllocatedMemory != NULL )
|
||||||
{
|
{
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
||||||
CONFIG_IDF_TARGET="esp32c3"
|
CONFIG_IDF_TARGET="esp32c3"
|
||||||
TEST_EXCLUDE_COMPONENTS=libsodium bt app_update freertos esp32c3 esp_ipc esp_pm esp_system esp_timer driver heap pthread soc spi_flash vfs experimental_cpp_component ulp perfmon esp-tls
|
TEST_EXCLUDE_COMPONENTS=libsodium bt app_update freertos esp32c3 esp_ipc esp_pm esp_system esp_timer driver heap pthread soc spi_flash vfs experimental_cpp_component ulp perfmon esp-tls test_utils
|
||||||
|
Reference in New Issue
Block a user