]> granicus.if.org Git - postgresql/commit
Ensure _dosmaperr() actually sets errno correctly.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Nov 2013 23:24:26 +0000 (18:24 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Nov 2013 23:24:42 +0000 (18:24 -0500)
commit69eb861695be52706217ec58830178d0a82d53ce
tree5c61fd41a952ee60c25063b20b15d75fe277df93
parent0f8ff3e467b2b52e8c0c44b01a1f9a4495949ba1
Ensure _dosmaperr() actually sets errno correctly.

If logging is enabled, either ereport() or fprintf() might stomp on errno
internally, causing this function to return the wrong result.  That might
only end in a misleading error report, but in any code that's examining
errno to decide what to do next, the consequences could be far graver.

This has been broken since the very first version of this file in 2006
... it's a bit astonishing that we didn't identify this long ago.

Reported by Amit Kapila, though this isn't his proposed fix.
src/port/win32error.c