Check for unbounded authentication exchanges in libpq.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 22 Feb 2023 19:27:38 +0000 (21:27 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 22 Feb 2023 19:27:38 +0000 (21:27 +0200)
commit5e044471a1aa8714d4fc59ea0d599009aaa05278
tree8bf17c166ffdc2a8f879fd70719fb79f0953dfaf
parenta75ff55c83342656266deb1890bcdd27466333ea
Check for unbounded authentication exchanges in libpq.

A couple of code paths in CONNECTION_AWAITING_RESPONSE will eagerly read
bytes off a connection that should be closed. Don't let a misbehaving
server chew up client resources here; a v2 error can't be infinitely
long, and a v3 error should be bounded by its original message length.

For the existing error_return cases, I added some additional error
messages for symmetry with the new ones, and cleaned up some message
rot.

Author: Jacob Champion
Discussion: https://www.postgresql.org/message-id/8e729daf-7d71-6965-9687-8bc0630599b3%40timescale.com
src/interfaces/libpq/fe-connect.c