...
In this noncompliant code sample, the function squirrel_away
()
stores a pointer to local stack variable local
into a location pointed to by function parameter ptr_param
. Since it an be assumed that the pointer variable to which ptr_param
points remains alive upon squirrel_away
()
's return, it is illegal for local
to go out of scope.
Code Block |
---|
void squirrel_away(char \**ptr_param) { |
...
char local[10]; |
...
/\* Initialize array \*/ |
...
\*ptr_param = local; |
...
} |
...
void rodent() { |
...
char \*ptr; |
...
squirrel_away(&ptr); |
...
/\* ptr is live but invalid here \*/ |
...
} |
Risk Assessment
Referencing an object outside of its lifetime can result in an attacker being able to run arbitrary code.
...