Files should be created with appropriate access permissions. Creating a file with insufficient file access permissions may allow unintended access to program-critical files. File permissions are heavily dependent on the underlying operating system. This recommendation offers three examples of how to specify access permissions for newly created files using standard C and POSIX functions.
Non-
...
Compliant Code Example
The fopen()
function does not provide a mechanism to specify file access permissions. In the example below, if the call to fopen()
creates a new file, the access permissions for that file will be implementation defined. Note that on POSIX compliant systems the permissions may be influenced by the value of umask()
. More information on umask()
is available in the POSIX specification.
...
Code Block | ||
---|---|---|
| ||
... File *fptr; errno_t res = fopen_s(&fptr,file_name, "w"); if (res != 0) { /* Handle Error */ } ... |
Non-
...
Compliant Code Example (POSIX)
Using the POSIX function open()
to create a file but failing to provide access permissions for that file may cause that file to be created with unintended access permissions. This omission has been known to lead to vulnerabilities; for instance, CVE-2006-1174.
...