]> granicus.if.org Git - postgresql/commit
Don't trust CreateFileMapping() to clear the error code on success.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 23 Sep 2016 14:09:52 +0000 (10:09 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 23 Sep 2016 14:09:52 +0000 (10:09 -0400)
commit8e6b4ee21f486e6800aaa6955ff3d98e1a521b49
treef5e1b9cce6a58921f06c7181edeb8b4bfb2dc2a4
parent49a91b88e6c4afb840745c78942dd99ce125a6d6
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>
src/backend/storage/ipc/dsm_impl.c