diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-07-24 17:35:24 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-07-24 17:35:24 +0000 |
commit | 8a4a349ebe5a24fd2afefea8c53672433b756a91 (patch) | |
tree | 7b2a46941422066dce69b3a826fe04e3f6d2da4a /cpukit/score/src/threadstackallocate.c | |
parent | 2004-07-24 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-8a4a349ebe5a24fd2afefea8c53672433b756a91.tar.bz2 |
2004-07-24 Joel Sherrill <joel@OARcorp.com>
PR 660/rtems
* score/cpu/m68k/rtems/score/m68k.h, score/cpu/mips/cpu_asm.S,
score/src/threadinitialize.c, score/src/threadstackallocate.c: Check
for overflow when allocating stack.
Diffstat (limited to 'cpukit/score/src/threadstackallocate.c')
-rw-r--r-- | cpukit/score/src/threadstackallocate.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/cpukit/score/src/threadstackallocate.c b/cpukit/score/src/threadstackallocate.c index 74872d91f5..6709ee22ba 100644 --- a/cpukit/score/src/threadstackallocate.c +++ b/cpukit/score/src/threadstackallocate.c @@ -36,15 +36,16 @@ * Set the Start.stack field to the address of the stack */ -uint32_t _Thread_Stack_Allocate( +uint32_t _Thread_Stack_Allocate( Thread_Control *the_thread, - uint32_t stack_size + uint32_t stack_size ) { void *stack_addr = 0; + uint32_t the_stack_size = stack_size; - if ( !_Stack_Is_enough( stack_size ) ) - stack_size = STACK_MINIMUM_SIZE; + if ( !_Stack_Is_enough( the_stack_size ) ) + the_stack_size = STACK_MINIMUM_SIZE; /* * Call ONLY the CPU table stack allocate hook, _or_ the @@ -52,9 +53,8 @@ uint32_t _Thread_Stack_Allocate( * routine can call the correct deallocation routine. */ - if ( _CPU_Table.stack_allocate_hook ) - { - stack_addr = (*_CPU_Table.stack_allocate_hook)( stack_size ); + if ( _CPU_Table.stack_allocate_hook ) { + stack_addr = (*_CPU_Table.stack_allocate_hook)( the_stack_size ); } else { /* @@ -68,14 +68,14 @@ uint32_t _Thread_Stack_Allocate( * the context initialization sequence in sync. */ - stack_size = _Stack_Adjust_size( stack_size ); - stack_addr = _Workspace_Allocate( stack_size ); + the_stack_size = _Stack_Adjust_size( the_stack_size ); + stack_addr = _Workspace_Allocate( the_stack_size ); } if ( !stack_addr ) - stack_size = 0; + the_stack_size = 0; the_thread->Start.stack = stack_addr; - return stack_size; + return the_stack_size; } |