...
Code Block | ||
---|---|---|
| ||
/* ... */
FILE *file_ptr;
char filename[L_tmpnam_s];
if (tmpnam_s(filename, L_tmpnam_s) != 0) {
/* Handle Error */
}
Â
/* A TOCTOU race condition exists here */
if (!fopen_s(&file_ptr, filename, "wb+")) {
/* Handle Error */
}
/* ... */
|
...
TR 24731-1 notes the following regarding the use of tmpfile_s instead of }}{{{}tmpnam_s:
After a program obtains a file name using the
tmpnam_s
function and before the program creates a file with that name, the possibility exists that someone else may create a file with that same name. To avoid this race condition, thetmpfile_s
function should be used instead oftmpnam_s
when possible. One situation that requires the use of thetmpnam_s
function is when the program needs to create a temporary directory rather than a temporary file.
...