From 2f1de707766ad7e8c29b6f54cc1531133dcb309a Mon Sep 17 00:00:00 2001 From: Natchanon Nuntanirund Date: Mon, 29 Jul 2024 20:55:57 +0700 Subject: [PATCH] Ensure ulStackSize is not overflow --- portable/ThirdParty/GCC/Posix/port.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/portable/ThirdParty/GCC/Posix/port.c b/portable/ThirdParty/GCC/Posix/port.c index 94e80cc4d..e54b9b7c3 100644 --- a/portable/ThirdParty/GCC/Posix/port.c +++ b/portable/ThirdParty/GCC/Posix/port.c @@ -169,7 +169,9 @@ StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack, pxEndOfStack = ( StackType_t * ) mach_vm_round_page( pxEndOfStack ); #endif - ulStackSize = ( size_t ) ( pxTopOfStack + 1 - pxEndOfStack ) * sizeof( *pxTopOfStack ); + /* Ensure ulStackSize is not overflow */ + ulStackSize = ( pxTopOfStack + 1 > pxEndOfStack ) ? ( pxTopOfStack + 1 - pxEndOfStack ) : ( pxEndOfStack - pxTopOfStack + 1); + ulStackSize = ( size_t ) ( ulStackSize ) * sizeof( *pxTopOfStack ); #ifdef __APPLE__ ulStackSize = mach_vm_trunc_page( ulStackSize );