From: Magnus Hagander Date: Mon, 4 May 2009 08:36:40 +0000 (+0000) Subject: Call SetLastError(0) before calling the file mapping functions X-Git-Url: http://git.postgresql.org/gitweb/static/session/index.html?a=commitdiff_plain;h=4d754acf96ffa01c02dd9882ab0ebfe2fd6ad999;p=users%2Fsimon%2Fpostgres.git Call SetLastError(0) before calling the file mapping functions to make sure that the error code is reset, as a precaution in case the API doesn't properly reset it on success. This could be necessary, since we check the error value even if the function doesn't fail for specific success cases. --- diff --git a/src/backend/port/win32_shmem.c b/src/backend/port/win32_shmem.c index a7cc9aab17..80700950aa 100644 --- a/src/backend/port/win32_shmem.c +++ b/src/backend/port/win32_shmem.c @@ -131,6 +131,9 @@ PGSharedMemoryCreate(Size size, bool makePrivate, int port) UsedShmemSegAddr = NULL; + /* In case CreateFileMapping() doesn't set the error code to 0 on success */ + SetLastError(0); + hmap = CreateFileMapping((HANDLE) 0xFFFFFFFF, /* Use the pagefile */ NULL, /* Default security attrs */ PAGE_READWRITE, /* Memory is Read/Write */ @@ -160,6 +163,9 @@ PGSharedMemoryCreate(Size size, bool makePrivate, int port) Sleep(1000); + /* In case CreateFileMapping() doesn't set the error code to 0 on success */ + SetLastError(0); + hmap = CreateFileMapping((HANDLE) 0xFFFFFFFF, NULL, PAGE_READWRITE, 0L, (DWORD) size, szShareMem); if (!hmap) ereport(FATAL,