Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRTOS/FreeRTOS-Kernel.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCobus van Eeden <35851496+cobusve@users.noreply.github.com>2020-12-07 22:07:31 +0300
committerGitHub <noreply@github.com>2020-12-07 22:07:31 +0300
commitd05b9c123f2bf9090bce386a244fc934ae44db5b (patch)
tree2a3c7a550fd32327283a09b0d9e197903a67efd0 /stream_buffer.c
parentc7a9a01c94987082b223d3e59969ede64363da63 (diff)
Add addition overflow check for stream buffer (#226)
Diffstat (limited to 'stream_buffer.c')
-rw-r--r--stream_buffer.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/stream_buffer.c b/stream_buffer.c
index 03cfc0615..fec03a781 100644
--- a/stream_buffer.c
+++ b/stream_buffer.c
@@ -258,8 +258,16 @@ 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 )
{