Don't trust CreateFileMapping() to clear the error code on success.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: e7f5d8ea1c75cc341a966897760a812e437c4668
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2016-09-23T14:09:52Z
Releases: 9.6.0
Don't trust CreateFileMapping() to clear the error code on success.

We must test GetLastError() even when CreateFileMapping() returns a
non-null handle.  If that value were left over from some previous system
call, we might be fooled into thinking the segment already existed.
Experimentation on Windows 7 suggests that CreateFileMapping() clears
the error code on success, but it is not documented to do so, so let's
not rely on that happening in all Windows releases.

Amit Kapila

Discussion: <20811.1474390987@sss.pgh.pa.us>

Files

PathChange+/−
src/backend/storage/ipc/dsm_impl.c modified +3 −0