task_create: Don't even try if the accumulated size of the argument list is larger than the stack
This commit is contained in:
parent
2a0549865f
commit
bc265d74e7
@ -490,9 +490,16 @@ static inline int task_stackargsetup(FAR struct task_tcb_s *tcb,
|
|||||||
|
|
||||||
while (argv[argc])
|
while (argv[argc])
|
||||||
{
|
{
|
||||||
/* Add the size of this argument (with NUL terminator) */
|
/* Add the size of this argument (with NUL terminator).
|
||||||
|
* Check each time if the accumulated size exceeds the
|
||||||
|
* size of the allocated stack.
|
||||||
|
*/
|
||||||
|
|
||||||
strtablen += (strlen(argv[argc]) + 1);
|
strtablen += (strlen(argv[argc]) + 1);
|
||||||
|
if (strtablen >= tcb->adj_stack_size)
|
||||||
|
{
|
||||||
|
return -ENAMETOOLONG;
|
||||||
|
}
|
||||||
|
|
||||||
/* Increment the number of args. Here is a sanity check to
|
/* Increment the number of args. Here is a sanity check to
|
||||||
* prevent running away with an unterminated argv[] list.
|
* prevent running away with an unterminated argv[] list.
|
||||||
|
Loading…
Reference in New Issue
Block a user