Difference between revisions of "Misinterpreted function return value"

From OWASP
Jump to: navigation, search
Line 1: Line 1:
 
 
{{Template:SecureSoftware}}
 
{{Template:SecureSoftware}}
  
Line 59: Line 58:
 
Not available.
 
Not available.
  
==Categories ==
 
  
 
[[Category:Vulnerability]]
 
[[Category:Vulnerability]]

Revision as of 23:10, 27 May 2006


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

  • Languages: C or C++
  • Operating platforms: Any

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

Related problems

Not available.