|
41 | 41 | #define IS_DOT_OR_DOTDOT(s) \
|
42 | 42 | ((s)[0] == L'.' && ((s)[1] == L'\0' || ((s)[1] == L'.' && (s)[2] == L'\0')))
|
43 | 43 |
|
| 44 | +#define FILE_SHARE_FLAGS (FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE) |
| 45 | + |
44 | 46 | #ifndef INVALID_FILE_ATTRIBUTES
|
45 | 47 | #define INVALID_FILE_ATTRIBUTES ((DWORD) 0xFFFFFFFF)
|
46 | 48 | #endif
|
@@ -724,7 +726,7 @@ efile_openfile(Efile_error* errInfo, /* Where to return error codes. */
|
724 | 726 | crFlags = CREATE_NEW;
|
725 | 727 | }
|
726 | 728 | fd = CreateFileW(wname, access,
|
727 |
| - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, |
| 729 | + FILE_SHARE_FLAGS, |
728 | 730 | NULL, crFlags, FILE_ATTRIBUTE_NORMAL, NULL);
|
729 | 731 |
|
730 | 732 | /*
|
@@ -909,7 +911,7 @@ efile_fileinfo(Efile_error* errInfo, Efile_info* pInfo,
|
909 | 911 | {
|
910 | 912 | HANDLE handle; /* Handle returned by CreateFile() */
|
911 | 913 | BY_HANDLE_FILE_INFORMATION fileInfo; /* from CreateFile() */
|
912 |
| - if (handle = CreateFileW(name, GENERIC_READ, 0,NULL, |
| 914 | + if (handle = CreateFileW(name, GENERIC_READ, FILE_SHARE_FLAGS, NULL, |
913 | 915 | OPEN_EXISTING, 0, NULL)) {
|
914 | 916 | GetFileInformationByHandle(handle, &fileInfo);
|
915 | 917 | pInfo->links = fileInfo.nNumberOfLinks;
|
@@ -1021,7 +1023,7 @@ efile_write_info(Efile_error* errInfo,
|
1021 | 1023 | }
|
1022 | 1024 |
|
1023 | 1025 | fd = CreateFileW(wname, GENERIC_READ|GENERIC_WRITE,
|
1024 |
| - FILE_SHARE_READ | FILE_SHARE_WRITE, |
| 1026 | + FILE_SHARE_FLAGS, |
1025 | 1027 | NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
1026 | 1028 | if (fd != INVALID_HANDLE_VALUE) {
|
1027 | 1029 | BOOL result = SetFileTime(fd, &CreationFileTime, &AccessFileTime, &ModifyFileTime);
|
@@ -1384,7 +1386,7 @@ efile_readlink(Efile_error* errInfo, char* name, char* buffer, size_t size)
|
1384 | 1386 | DWORD fileAttributes = GetFileAttributesW(wname);
|
1385 | 1387 | if ((fileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) {
|
1386 | 1388 | BOOLEAN success = 0;
|
1387 |
| - HANDLE h = CreateFileW(wname, GENERIC_READ, 0,NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); |
| 1389 | + HANDLE h = CreateFileW(wname, GENERIC_READ, FILE_SHARE_FLAGS, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); |
1388 | 1390 | int len;
|
1389 | 1391 | if(h != INVALID_HANDLE_VALUE) {
|
1390 | 1392 | success = pGetFinalPathNameByHandle(h, wbuffer, size / sizeof(WCHAR),0);
|
|
0 commit comments