...
The return value of remove()
is deliberately not checked because it is expected to fail if the file does not exist. If the file exists but cannot be removed, the rename()
call will also fail, and the error will be detected at that point. This is a valid exception (EXP12-C-EX1) to EXP12-C. Do not ignore values returned by functions.
...
Calling rename()
has implementation-defined behavior when the new file name refers to an existing file. Incorrect use of rename()
can result in a file being unexpectedly overwritten or other unexpected behavior.
Recommendation | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
FIO10-C | Medium | Probable | Medium | P8 | L2 |
Automated Detection
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
CodeSonar |
| (customization) | Users can add a custom check for all uses of rename() . |
Helix QAC |
| C5015 | |||||||
LDRA tool suite |
|
|
|
592 S | Fully Implemented |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
Bibliography
[IEEE Std 1003.1:2013] | XSH, System Interfaces, access |
[MSDN] | rename() |
...