Ensure ulStackSize is not overflow

This commit is contained in:
Natchanon Nuntanirund 2024-07-29 20:55:57 +07:00 committed by GitHub
parent fffed5e809
commit 2f1de70776
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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 );