Sfoglia il codice sorgente

freertos: Add addition overflow check for stream buffer

Patch from upstream commit d05b9c123f2bf9090bce386a244fc934ae44db5b
Angus Gratton 4 anni fa
parent
commit
e02439f2de
1 ha cambiato i file con 9 aggiunte e 2 eliminazioni
  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
 		space would be reported as one byte smaller than would be logically
 		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 )
 		{