Check for unbounded authentication exchanges in libpq.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: 5e044471a1aa8714d4fc59ea0d599009aaa05278
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2023-02-22T19:27:38Z
Releases: 16.0
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

Files

PathChange+/−
src/interfaces/libpq/fe-connect.c modified +39 −12

Discussion