]> 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)
commitb2d59ab02ce380daec0b974955d047eb74b0cebb
treecb16dec8259d9f25c4fe32c65b540b3b348866ba
parent32cdf680f19a3c995da83cbef2741288b0549a7d
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