mirror of
https://github.com/postgres/postgres.git
synced 2025-11-21 00:42:43 +03:00
Make SASL max message length configurable
The proposed OAUTHBEARER SASL mechanism will need to allow larger messages in the exchange, since tokens are sent directly by the client. Move this limit into the pg_be_sasl_mech struct so that it can be changed per-mechanism. Author: Jacob Champion <jacob.champion@enterprisedb.com> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://postgr.es/m/CAOYmi+nqX_5=Se0W0Ynrr55Fha3CMzwv_R9P3rkpHb=1kG7ZTQ@mail.gmail.com
This commit is contained in:
@@ -20,14 +20,6 @@
|
||||
#include "libpq/pqformat.h"
|
||||
#include "libpq/sasl.h"
|
||||
|
||||
/*
|
||||
* Maximum accepted size of SASL messages.
|
||||
*
|
||||
* The messages that the server or libpq generate are much smaller than this,
|
||||
* but have some headroom.
|
||||
*/
|
||||
#define PG_MAX_SASL_MESSAGE_LENGTH 1024
|
||||
|
||||
/*
|
||||
* Perform a SASL exchange with a libpq client, using a specific mechanism
|
||||
* implementation.
|
||||
@@ -103,7 +95,7 @@ CheckSASLAuth(const pg_be_sasl_mech *mech, Port *port, char *shadow_pass,
|
||||
|
||||
/* Get the actual SASL message */
|
||||
initStringInfo(&buf);
|
||||
if (pq_getmessage(&buf, PG_MAX_SASL_MESSAGE_LENGTH))
|
||||
if (pq_getmessage(&buf, mech->max_message_length))
|
||||
{
|
||||
/* EOF - pq_getmessage already logged error */
|
||||
pfree(buf.data);
|
||||
|
||||
@@ -113,7 +113,9 @@ static int scram_exchange(void *opaq, const char *input, int inputlen,
|
||||
const pg_be_sasl_mech pg_be_scram_mech = {
|
||||
scram_get_mechanisms,
|
||||
scram_init,
|
||||
scram_exchange
|
||||
scram_exchange,
|
||||
|
||||
PG_MAX_SASL_MESSAGE_LENGTH
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user