pgsql: Ensure _dosmaperr() actually sets errno correctly. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Ensure _dosmaperr() actually sets errno correctly.
Date
Msg-id E1VkMa0-00009Q-SS@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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.

Branch
------
REL8_4_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/3482f29869b170fe07cae8d3063f46b21b586f7f

Modified Files
--------------
src/port/win32error.c |    8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Ensure _dosmaperr() actually sets errno correctly.
Next
From: Tom Lane
Date:
Subject: pgsql: Fix array slicing of int2vector and oidvector values.