Overview
If a function's return value is not properly checked,
the function could have failed without proper
acknowledgement.
Consequences
- Integrity: The data - which was produced as a
result of an improperly checked return value of a
function - could be in a bad state.
Exposure
period
- Requirements specification: The choice could be
made to use a language that uses exceptions rather
than return values to handle status.
- Implementation: Many logic errors can lead to
this condition. It can be exacerbated by lack, or
misuse, of mitigating technologies.
Platform
Required
resources
Any
Severity
Medium
Likelihood
of
exploit
Low
Avoidance
and
mitigation
- Requirements specification: Use a language or
compiler that uses exceptions and requires the
catching of those exceptions.
- Implementation: Properly check all functions
which return a value.
- Implementation: When designing any function make
sure you return a value or throw an exception in
case of an error.
Discussion
Important and common functions will return some value
about the success of its actions. This will alert the
program whether or not to handle any errors caused by
that function.
Examples
In C/C++
if (malloc(sizeof(int*4) < 0 )
perror("Failure"); //should have checked if the call returned 0