diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index d36d11f41..117839c51 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,4 +1,8 @@ -2008-04-20 Corinna Vinschen +2008-04-21 Corinna Vinschen + + * kernel32.cc (CreateFileMappingW): Fix bug in reserve/commit handling. + +2008-04-21 Corinna Vinschen * Makefile.in (DLL_OFILES): Add kernel32.o. * autoload.cc (WSACloseEvent): Remove. diff --git a/winsup/cygwin/kernel32.cc b/winsup/cygwin/kernel32.cc index f8953327d..525432a00 100644 --- a/winsup/cygwin/kernel32.cc +++ b/winsup/cygwin/kernel32.cc @@ -331,8 +331,8 @@ CreateFileMappingW (HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes, lpAttributes ? lpAttributes->lpSecurityDescriptor : NULL); - if (!attribs) - attribs = SEC_COMMIT; + if (!(attribs & (SEC_RESERVE | SEC_COMMIT))) + attribs |= SEC_COMMIT; if (hFile == INVALID_HANDLE_VALUE) hFile = NULL; status = NtCreateSection (§, access, &attr, psize, prot, attribs, hFile);