Formatted input functions such as scanf()
, fscanf()
, vscanf()
, and vfscanf()
can be used to read string data from stdin
or (in the cases of fscanf()
and vfscanf()
) other input stream. These functions work fine for valid integer values but lack robust error handling for invalid values.
Wiki Markup |
---|
Instead of these functions, try inputing the value as a string and then converting it to an integer value using {{strtol()}} or a related function \[[INT06-A|INT06-A. Use strtol() to convert a string token to an integer]\]. |
Include Page | ||||
---|---|---|---|---|
|
Include Page | ||||
---|---|---|---|---|
|
Risk Assessment
While it is relativley rare for a violation of this rule to result in a security vulnerability, it could more easily result in loss or misinterpreted data.
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
INT05-A | 1 (low) | 2 (low) | 2 (medium) | P2 | L3 |
References
Wiki Markup |
---|
\[[Klein 02|AA. C References#Klein 02]] \[[ISO/IEC 9899-1999|AA. C References#ISO/IEC 9899-1999]] Section 7.20.1.4, "The strtol, strtoll, strtoul, and strtoull functions," and Section 7.19.6, "Formatted input/output functions" |