44 lines
605 B
Plaintext
44 lines
605 B
Plaintext
![]() |
include::../description.adoc[]
|
||
|
|
||
|
include::../ask-yourself.adoc[]
|
||
|
|
||
|
include::../recommended.adoc[]
|
||
|
|
||
|
== Sensitive Code Example
|
||
|
|
||
|
----
|
||
|
#include <cstdio>
|
||
|
// ...
|
||
|
|
||
|
void f() {
|
||
|
FILE * fp = fopen("/tmp/temporary_file", "r"); // Sensitive
|
||
|
}
|
||
|
----
|
||
|
|
||
|
----
|
||
|
#include <cstdio>
|
||
|
#include <cstdlib>
|
||
|
#include <sstream>
|
||
|
// ...
|
||
|
|
||
|
void f() {
|
||
|
std::stringstream ss;
|
||
|
ss << getenv("TMPDIR") << "/temporary_file"; // Sensitive
|
||
|
FILE * fp = fopen(ss.str().c_str(), "w");
|
||
|
}
|
||
|
----
|
||
|
|
||
|
== Compliant Solution
|
||
|
|
||
|
----
|
||
|
#include <cstdio>
|
||
|
#include <cstdlib>
|
||
|
// ...
|
||
|
|
||
|
void f() {
|
||
|
FILE * fp = tmpfile(); // Compliant
|
||
|
}
|
||
|
----
|
||
|
|
||
|
include::../see.adoc[]
|