pgsql: Set errno to zero before invoking SSL_read or SSL_write.

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Set errno to zero before invoking SSL_read or SSL_write.
Date: 2009-12-30 03:46:01
Message-ID: 20091230034601.C1D5A753FBC@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Set errno to zero before invoking SSL_read or SSL_write. It appears that
at least in some Windows versions, these functions are capable of returning
a failure indication without setting errno. That puts us into an infinite
loop if the previous value happened to be EINTR. Per report from Brendan
Hill.

Back-patch to 8.2. We could take it further back, but since this is only
known to be an issue on Windows and we don't support Windows before 8.2,
it does not seem worth the trouble.

Tags:
----
REL8_3_STABLE

Modified Files:
--------------
pgsql/src/backend/libpq:
be-secure.c (r1.83.2.2 -> r1.83.2.3)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/libpq/be-secure.c?r1=1.83.2.2&r2=1.83.2.3)
pgsql/src/interfaces/libpq:
fe-secure.c (r1.102.2.2 -> r1.102.2.3)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/fe-secure.c?r1=1.102.2.2&r2=1.102.2.3)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2009-12-30 03:46:08 pgsql: Set errno to zero before invoking SSL_read or SSL_write.
Previous Message Tom Lane 2009-12-30 03:45:53 pgsql: Set errno to zero before invoking SSL_read or SSL_write.