Преглед изворни кода

freertos: Add addition overflow check for stream buffer

Patch from upstream commit d05b9c123f2bf9090bce386a244fc934ae44db5b
Angus Gratton пре 4 година
родитељ
комит
e02439f2de
1 измењених фајлова са 9 додато и 2 уклоњено
  1. 9 2
      components/freertos/stream_buffer.c

+ 9 - 2
components/freertos/stream_buffer.c

@@ -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. */
-		xBufferSizeBytes++;
-		pucAllocatedMemory = ( uint8_t * ) pvPortMalloc( xBufferSizeBytes + sizeof( StreamBuffer_t ) ); /*lint !e9079 malloc() only returns void*. */
+		if( xBufferSizeBytes < ( xBufferSizeBytes + 1 + sizeof( StreamBuffer_t ) ) )
+		{
+			xBufferSizeBytes++;
+			pucAllocatedMemory = ( uint8_t * ) pvPortMalloc( xBufferSizeBytes + sizeof( StreamBuffer_t ) ); /*lint !e9079 malloc() only returns void*. */
+		}
+		else
+		{
+			pucAllocatedMemory = NULL;
+		}
 
 
 		if( pucAllocatedMemory != NULL )
 		if( pucAllocatedMemory != NULL )
 		{
 		{