diff --git a/reactos/dll/win32/kernel32/client/file/filemap.c b/reactos/dll/win32/kernel32/client/file/filemap.c index dabd6ec99c5..220e1373ef8 100644 --- a/reactos/dll/win32/kernel32/client/file/filemap.c +++ b/reactos/dll/win32/kernel32/client/file/filemap.c @@ -314,11 +314,14 @@ OpenFileMappingW(IN DWORD dwDesiredAccess, NULL); /* Convert COPY to READ */ - if (dwDesiredAccess == FILE_MAP_COPY) dwDesiredAccess = SECTION_MAP_READ; - - /* Fixup execute */ - if (dwDesiredAccess == FILE_MAP_EXECUTE) + if (dwDesiredAccess == FILE_MAP_COPY) { + /* Fixup copy */ + dwDesiredAccess = SECTION_MAP_READ; + } + else if (dwDesiredAccess & FILE_MAP_EXECUTE) + { + /* Fixup execute */ dwDesiredAccess = (dwDesiredAccess & ~FILE_MAP_EXECUTE) | SECTION_MAP_EXECUTE; }