pgsql: Fix poor errno handling in libpq's version of our custom OpenSSL - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix poor errno handling in libpq's version of our custom OpenSSL
Date
Msg-id E1ZggVW-0005kx-PJ@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix poor errno handling in libpq's version of our custom OpenSSL BIO.

Thom Brown reported that SSL connections didn't seem to work on Windows in
9.5.  Asif Naeem figured out that the cause was my_sock_read() looking at
"errno" when it needs to look at "SOCK_ERRNO".  This mistake was introduced
in commit 680513ab79c7e12e402a2aad7921b95a25a4bcc8, which cloned the
backend's custom SSL BIO code into libpq, and didn't translate the errno
handling properly.  Moreover, it introduced unnecessary errno save/restore
logic, which was particularly confusing because it was incomplete; and it
failed to check for all three of EINTR, EAGAIN, and EWOULDBLOCK in
my_sock_write.  (That might not be necessary; but since we're copying
well-tested backend code that does do that, it seems prudent to copy it
faithfully.)

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/b67c9c1939f10e94186d2736039ff623dbb2ce3f

Modified Files
--------------
src/interfaces/libpq/fe-secure-openssl.c |   24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)


pgsql-committers by date:

Previous
From: Stephen Frost
Date:
Subject: pgsql: Ensure a few policies remain for pg_upgrade
Next
From: Tom Lane
Date:
Subject: pgsql: Fix poor errno handling in libpq's version of our custom OpenSSL