postgresql/src
Alvaro Herrera 31cf1a1a43 Rework SSL renegotiation code
The existing renegotiation code was home for several bugs: it might
erroneously report that renegotiation had failed; it might try to
execute another renegotiation while the previous one was pending; it
failed to terminate the connection if the renegotiation never actually
took place; if a renegotiation was started, the byte count was reset,
even if the renegotiation wasn't completed (this isn't good from a
security perspective because it means continuing to use a session that
should be considered compromised due to volume of data transferred.)

The new code is structured to avoid these pitfalls: renegotiation is
started a little earlier than the limit has expired; the handshake
sequence is retried until it has actually returned successfully, and no
more than that, but if it fails too many times, the connection is
closed.  The byte count is reset only when the renegotiation has
succeeded, and if the renegotiation byte count limit expires, the
connection is terminated.

This commit only touches the master branch, because some of the changes
are controversial.  If everything goes well, a back-patch might be
considered.

Per discussion started by message
20130710212017.GB4941@eldon.alvh.no-ip.org
2013-10-10 23:45:20 -03:00
..
backend Rework SSL renegotiation code 2013-10-10 23:45:20 -03:00
bin initdb: Select working dynamic shared memory implementation. 2013-10-10 19:46:31 -04:00
common pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
include Rework SSL renegotiation code 2013-10-10 23:45:20 -03:00
interfaces Translation updates 2013-10-07 16:51:52 -04:00
makefiles Ensure installation dirs are built before contents are installed (v2) 2013-09-30 10:17:30 -04:00
pl Translation updates 2013-10-07 16:51:52 -04:00
port Send SIGKILL to children if they don't die quickly in immediate shutdown 2013-06-28 17:49:46 -04:00
template Remove _FORTIFY_SOURCE 2012-10-10 21:42:38 -04:00
test Update regression tests for line type patch 2013-10-10 19:59:15 -04:00
timezone Update time zone data files to tzdata release 2013d. 2013-09-02 15:06:21 -04:00
tools Additional instructions on minor release note creation. 2013-10-08 10:29:43 -04:00
tutorial Modernize string literal syntax in tutorial example. 2013-01-19 17:20:32 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Create libpgcommon, and move pg_malloc et al to it 2013-02-12 11:21:05 -03:00
Makefile.global.in Remove maintainer-check target, fold into normal build 2013-10-10 20:11:56 -04:00
Makefile.shlib Add pkg-config files for libpq and ecpg libraries 2013-03-31 16:58:40 -04:00
nls-global.mk Remove maintainer-check target, fold into normal build 2013-10-10 20:11:56 -04:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00