diff --git a/lib/plat/windows/windows-file.c b/lib/plat/windows/windows-file.c index 1cbdd0cee..87c3fda4b 100644 --- a/lib/plat/windows/windows-file.c +++ b/lib/plat/windows/windows-file.c @@ -43,13 +43,12 @@ _lws_plat_file_open(const struct lws_plat_file_ops *fops_own, LARGE_INTEGER llFileSize = {0}; MultiByteToWideChar(CP_UTF8, 0, filename, -1, buf, LWS_ARRAY_SIZE(buf)); - if (((*flags) & 7) == _O_RDONLY) { - ret = CreateFileW(buf, GENERIC_READ, FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - } else { + if (((*flags) & 7) == _O_RDONLY) + ret = CreateFileW(buf, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + else ret = CreateFileW(buf, GENERIC_WRITE, 0, NULL, - CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - } + CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (ret == LWS_INVALID_FILE) goto bail;