Changeset 3999 for trunk/src


Ignore:
Timestamp:
Aug 12, 2000, 9:32:19 AM (25 years ago)
Author:
sandervl
Message:

CreateFile fix (don't add write access when creating files)

Location:
trunk/src/kernel32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/hmfile.cpp

    r3995 r3999  
    1 /* $Id: hmfile.cpp,v 1.15 2000-08-11 18:42:54 sandervl Exp $ */
     1/* $Id: hmfile.cpp,v 1.16 2000-08-12 07:32:18 sandervl Exp $ */
    22
    33/*
     
    108108     hTemplate = 0;
    109109
    110   //SvL: Open32 doesn't like this flag
    111   if(pHMHandleData->dwShare & FILE_SHARE_DELETE) {
    112         pHMHandleData->dwShare &= ~FILE_SHARE_DELETE;
    113   }
     110  //TODO: FILE_SHARE_DELETE
    114111#ifdef SHARE_WORKAROUND
    115   pHMHandleData->dwShare = FILE_SHARE_READ | FILE_SHARE_WRITE;
     112  pHMHandleData->dwShare |= (FILE_SHARE_READ | FILE_SHARE_WRITE);
    116113#endif
    117114  hFile = OSLibDosCreateFile((LPSTR)lpFileName,
     
    122119                             pHMHandleData->dwFlags,
    123120                             hTemplate);
    124 #ifdef SHARE_WORKAROUND
    125   if (hFile == INVALID_HANDLE_ERROR) {
    126         //could be a read-only drive -> FILE_SHARE_WRITE is illegal
    127         pHMHandleData->dwShare = FILE_SHARE_READ;
    128         hFile = OSLibDosCreateFile((LPSTR)lpFileName,
    129                              pHMHandleData->dwAccess,
    130                              pHMHandleData->dwShare,
    131                              (LPSECURITY_ATTRIBUTES)lpSecurityAttributes,
    132                              pHMHandleData->dwCreation,
    133                              pHMHandleData->dwFlags,
    134                              hTemplate);
    135   }
    136 #endif
    137121
    138122  if (hFile != INVALID_HANDLE_ERROR)
  • trunk/src/kernel32/oslibdos.cpp

    r3993 r3999  
    1 /* $Id: oslibdos.cpp,v 1.37 2000-08-11 10:56:17 sandervl Exp $ */
     1/* $Id: oslibdos.cpp,v 1.38 2000-08-12 07:32:19 sandervl Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    782782        openMode |= OPEN_ACCESS_WRITEONLY;
    783783
     784#if 0
     785   //SvL: Not true; verified in NT! (also messed up access of files on
     786   //     readonly volumes)
     787   //     CreateFile with OPEN_ALWAYS & GENERIC_READ on non-existing file
     788   //     -> creates 0 size file, WriteFile is not allowed
     789   //     Same in OS/2.
    784790   /* if creating a file, access cannot be readonly! */
    785791   if (openFlag & OPEN_ACTION_CREATE_IF_NEW &&
     
    788794        openMode |= OPEN_ACCESS_READWRITE;
    789795   }
     796#endif
    790797
    791798   int retry = 0;
Note: See TracChangeset for help on using the changeset viewer.