Kaynağa Gözat

freertos: Add addition overflow check for stream buffer

Patch from upstream commit d05b9c123f2bf9090bce386a244fc934ae44db5b
Angus Gratton 4 yıl önce
ebeveyn
işleme
e02439f2de
1 değiştirilmiş dosya ile 9 ekleme ve 2 silme
  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 )
 		{
 		{