win: add flag to open file with only FILE_SHARE_READ sharing mode
In order to support file integrity verification and mitigate risk of TOC/TOU vulnerabilities, allow callers to open the file with read only sharing mode.
This commit is contained in:
parent
2e7c07f4d1
commit
313ca49a09
@ -684,6 +684,7 @@ typedef struct {
|
|||||||
#define UV_FS_O_TEMPORARY _O_TEMPORARY
|
#define UV_FS_O_TEMPORARY _O_TEMPORARY
|
||||||
#define UV_FS_O_TRUNC _O_TRUNC
|
#define UV_FS_O_TRUNC _O_TRUNC
|
||||||
#define UV_FS_O_WRONLY _O_WRONLY
|
#define UV_FS_O_WRONLY _O_WRONLY
|
||||||
|
#define UV_FS_O_SHARE_RDONLY 0x40000000 /* READ ONLY SHARING MODE */
|
||||||
|
|
||||||
/* fs open() flags supported on other platforms (or mapped on this platform): */
|
/* fs open() flags supported on other platforms (or mapped on this platform): */
|
||||||
#define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */
|
#define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */
|
||||||
|
|||||||
@ -482,6 +482,8 @@ void fs__open(uv_fs_t* req) {
|
|||||||
*/
|
*/
|
||||||
if (flags & UV_FS_O_EXLOCK) {
|
if (flags & UV_FS_O_EXLOCK) {
|
||||||
share = 0;
|
share = 0;
|
||||||
|
} else if (flags & UV_FS_O_SHARE_RDONLY) {
|
||||||
|
share = FILE_SHARE_READ;
|
||||||
} else {
|
} else {
|
||||||
share = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
|
share = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user