libpq: Be strict about cancel key lengths

The protocol documentation states that the maximum length of a cancel
key is 256 bytes. This starts checking for that limit in libpq.
Otherwise third party backend implementations will probably start
using more bytes anyway. We also start requiring that a protocol 3.0
connection does not send a longer cancel key, to make sure that
servers don't start breaking old 3.0-only clients by accident. Finally
this also restricts the minimum key length to 4 bytes (both in the
protocol spec and in the libpq implementation).

Author: Jelte Fennema-Nio <postg...@jeltef.nl>
Reviewed-by: Jacob Champion <jchamp...@postgresql.org>
Discussion: 
https://www.postgresql.org/message-id/df892f9f-5923-4046-9d6f-8c48d8980...@iki.fi
Backpatch-through: 18

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e411a8d25a4b39e5a896f765ca91636057e261fc

Modified Files
--------------
doc/src/sgml/protocol.sgml          |  2 +-
src/interfaces/libpq/fe-protocol3.c | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)

Reply via email to