[commit: ghc] master: Drop accidental write-attributes request (deceb21)

git at git.haskell.org git at git.haskell.org
Wed Oct 3 15:18:01 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/deceb21b7ec64ae60377addc2679692ca500b6ae/ghc

>---------------------------------------------------------------

commit deceb21b7ec64ae60377addc2679692ca500b6ae
Author: Tamar Christina <tamar at zhox.com>
Date:   Wed Oct 3 15:34:56 2018 +0200

    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


>---------------------------------------------------------------

deceb21b7ec64ae60377addc2679692ca500b6ae
 utils/fs/fs.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/utils/fs/fs.c b/utils/fs/fs.c
index 0f8fbe7..6644705 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;



More information about the ghc-commits mailing list