 
                            ...
The following table shows a list of C standard library functions that provide limited or no error checking and reporting along with preferable alternatives:
| Function | Preferable | Comments | 
|---|---|---|
| 
 | 
 | No error indication, undefined behavior on error | 
| 
 | 
 | No error indication, undefined behavior on error | 
| 
 | 
 | No error indication, undefined behavior on error | 
| 
 | 
 | No error indication, undefined behavior on error | 
| 
 | 
 | No error indication, silent failure on error | 
| 
 | 
 | No error indication, silent failure on error | 
| ctime | asctime/localtime | Undefined behavior if  | 
Noncompliant Code Example (atoi())
...
The atoi(), atol(), and atoll() functions convert the initial portion of a string token to int, long int, and long long int representation respectively. Except for the behavior on error, they are equivalent as follows:
| Call | Equivalent on Success | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
Unfortunately, atoi() and related functions lack a mechanism for reporting errors for invalid values. Specifically, the atoi(), atol(), and atoll() functions
...
Although it is rare for a violation of this rule to result in a security vulnerability, it can easily result in lost or misinterpreted data.
| Recommendation | Severity | Likelihood | Remediation Cost | Priority | Level | 
|---|---|---|---|---|---|
| ERR07-C | Medium | Probable | Medium | P8 | L2 | 
Automated Detection
This rule in general cannot be detected, although various examples can be detected by simply scanning for functions that have equivalent functions with better error handling.
| Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| LDRA tool suite | 
 | 44 S, 593 S, 594 S | Partially implemented | ||||||
| Parasoft C/C++test | 
 | 
| 
 | 
| 
 | 
| MISRA2004- | 
| 20_ | 
| 10 | Partially implemented, detects ato* functions | 
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
| MITRE CWE | CWE-20, Improper Input Validation CWE-79, Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') CWE-89, Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') CWE-91, XML Injection (aka Blind XPath Injection) CWE-94, Improper Control of Generation of Code ('Code Injection') CWE-114, Process Control CWE-601, URL Redirection to Untrusted Site ('Open Redirect') CWE-676, Use of potentially dangerous function | 
Bibliography
| [Klein 2002] | "Bullet Proof Integer Input Using strtol()" | 
...
...