summaryrefslogtreecommitdiff
path: root/utils/fs
diff options
context:
space:
mode:
authorTamar Christina <tamar@zhox.com>2018-10-03 15:34:56 +0200
committerKrzysztof Gogolewski <krz.gogolewski@gmail.com>2018-10-03 15:40:22 +0200
commitdeceb21b7ec64ae60377addc2679692ca500b6ae (patch)
tree15c97a02cf0eab901bbe510ad027b7ba11757515 /utils/fs
parenta838ae3750d0744001f31f4cedad13acf47bd610 (diff)
downloadhaskell-deceb21b7ec64ae60377addc2679692ca500b6ae.tar.gz
Drop accidental write-attributes request
Summary: The new filesystem code accidentally asks for write attributes permissions when doing read-only access. I believe this is what's causing the GHC 8.6.1 tarballs to fail when installed to a privileged location. I haven't been able to reproduce the issue yet, but this permission bit is wrong anyway. Test Plan: I'm still trying to workout how to test that this works, changing the permissions on the folder doesn't seem to reproduce the error on a tarball I made from before the change. Reviewers: bgamari, tdammers Reviewed By: bgamari Subscribers: tdammers, monoidal, rwbarton, carter GHC Trac Issues: #15667 Differential Revision: https://phabricator.haskell.org/D5177
Diffstat (limited to 'utils/fs')
-rw-r--r--utils/fs/fs.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/utils/fs/fs.c b/utils/fs/fs.c
index 0f8fbe707f..6644705ffe 100644
--- a/utils/fs/fs.c
+++ b/utils/fs/fs.c
@@ -107,15 +107,13 @@ int FS(swopen) (const wchar_t* filename, int oflag, int shflag, int pmode)
/* Construct access mode. */
DWORD dwDesiredAccess = 0;
if (HAS_FLAG (oflag, _O_RDONLY))
- dwDesiredAccess |= GENERIC_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES |
- FILE_WRITE_ATTRIBUTES;;
+ dwDesiredAccess |= GENERIC_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES;
if (HAS_FLAG (oflag, _O_RDWR))
dwDesiredAccess |= GENERIC_WRITE | GENERIC_READ | FILE_READ_DATA |
FILE_WRITE_DATA | FILE_READ_ATTRIBUTES |
FILE_WRITE_ATTRIBUTES;
if (HAS_FLAG (oflag, _O_WRONLY))
- dwDesiredAccess|= GENERIC_WRITE | FILE_WRITE_DATA |
- FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES;
+ dwDesiredAccess|= GENERIC_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES;
/* Construct shared mode. */
DWORD dwShareMode = FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE;