windows: only allow opening directories for reading
This is closer to the Posix model.
This commit is contained in:
parent
69c2ef8acc
commit
109e176ae2
@ -390,7 +390,7 @@ void fs__open(uv_fs_t* req) {
|
||||
DWORD access;
|
||||
DWORD share;
|
||||
DWORD disposition;
|
||||
DWORD attributes;
|
||||
DWORD attributes = 0;
|
||||
HANDLE file;
|
||||
int result, current_umask;
|
||||
int flags = req->file_flags;
|
||||
@ -404,6 +404,7 @@ void fs__open(uv_fs_t* req) {
|
||||
switch (flags & (_O_RDONLY | _O_WRONLY | _O_RDWR)) {
|
||||
case _O_RDONLY:
|
||||
access = FILE_GENERIC_READ;
|
||||
attributes |= FILE_FLAG_BACKUP_SEMANTICS;
|
||||
break;
|
||||
case _O_WRONLY:
|
||||
access = FILE_GENERIC_WRITE;
|
||||
@ -419,6 +420,7 @@ void fs__open(uv_fs_t* req) {
|
||||
if (flags & _O_APPEND) {
|
||||
access &= ~FILE_WRITE_DATA;
|
||||
access |= FILE_APPEND_DATA;
|
||||
attributes &= ~FILE_FLAG_BACKUP_SEMANTICS;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -453,7 +455,7 @@ void fs__open(uv_fs_t* req) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
attributes = FILE_ATTRIBUTE_NORMAL;
|
||||
attributes |= FILE_ATTRIBUTE_NORMAL;
|
||||
if (flags & _O_CREAT) {
|
||||
if (!((req->mode & ~current_umask) & _S_IWRITE)) {
|
||||
attributes |= FILE_ATTRIBUTE_READONLY;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user