diff options
author | Cobus van Eeden <35851496+cobusve@users.noreply.github.com> | 2020-12-07 22:07:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-07 22:07:31 +0300 |
commit | d05b9c123f2bf9090bce386a244fc934ae44db5b (patch) | |
tree | 2a3c7a550fd32327283a09b0d9e197903a67efd0 /stream_buffer.c | |
parent | c7a9a01c94987082b223d3e59969ede64363da63 (diff) |
Add addition overflow check for stream buffer (#226)
Diffstat (limited to 'stream_buffer.c')
-rw-r--r-- | stream_buffer.c | 12 |
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 )
{
|