 
                            ...
| Code Block | ||
|---|---|---|
| 
 | ||
| #ifndef __STDC_LIB_EXT1__ typedef int errno_t; #endif | 
Noncompliant Code Example
...
This noncompliant code example nevertheless complies with ERR30-C. Set errno to zero before calling a library function known to set errno, and check errno only after the function returns a value indicating failureTake care when reading errno.
Compliant Solution (POSIX)
...
This compliant solution is categorized as a POSIX solution because it returns EINVAL and , which are defined by POSIX (IEEE Std 1003.1, 2013 Edition) but not by the C Standard.EIO 
...
Failing to test for error conditions can lead to vulnerabilities of varying severity. Declaring functions that return an errno with a return type of errno_t will not eliminate this problem but may reduce errors caused by programmers' misunderstanding the purpose of a return value.
| Recommendation | Severity | Likelihood | 
|---|
| Detectable | Repairable | Priority | Level | 
|---|---|---|---|
| DCL09-C | Low | Unlikely | 
| No | Yes | 
| P2 | L3 | 
Automated Detection
| Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Axivion Bauhaus Suite | 
 | CertC-DCL09 | |||||||
| LDRA tool suite | 
 | 634 S | Partially Implemented | 
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
| SEI CERT C++ | 
| Coding Standard | VOID DCL09-CPP. Declare functions that return errno with a return type of errno_t | 
| ISO/IEC TR 24772:2013 | Ignored Error Status and Unhandled Exceptions [OYB] | 
Bibliography
Bibliography
...