Use umask() to Constrain Created File Permissions
This commit addresses #2491. Note that a downside of this solution is that it is global: `umask()` affects all file creation calls in the process. I believe this is safe since `fileio.c` functions should only ever be used in the zstd binary, and these are (almost) the only files ever created by zstd, and AIUI they're only created in a single thread. So we can get away with messing with global state. Note that this doesn't change the permissions of files created by `dibio.c`. I'm not sure what those should be...
This commit is contained in:
@@ -159,6 +159,15 @@ int UTIL_chmod(char const* filename, const stat_t* statbuf, mode_t permissions)
|
||||
return chmod(filename, permissions);
|
||||
}
|
||||
|
||||
int UTIL_umask(int mode) {
|
||||
#if PLATFORM_POSIX_VERSION > 0
|
||||
return umask(mode);
|
||||
#else
|
||||
/* do nothing, fake return value */
|
||||
return mode;
|
||||
#endif
|
||||
}
|
||||
|
||||
int UTIL_setFileStat(const char *filename, const stat_t *statbuf)
|
||||
{
|
||||
int res = 0;
|
||||
|
||||
Reference in New Issue
Block a user