Eliminate fixed token-length limit in hba.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 27 Jul 2023 15:56:35 +0000 (11:56 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 27 Jul 2023 15:56:35 +0000 (11:56 -0400)
commit38df84c65ea4aa9110cbc797d07225fb0fac44f7
tree0127c901b5bccd70c17813c7c5c0c43e40fb6e48
parent320c311fda912226bcb2e82b507b498161581dd2
Eliminate fixed token-length limit in hba.c.

Historically, hba.c limited tokens in the authentication configuration
files (pg_hba.conf and pg_ident.conf) to less than 256 bytes.  We have
seen a few reports of this limit causing problems; notably, for
moderately-complex LDAP configurations.  Let's get rid of the fixed
limit by using a StringInfo instead of a fixed-size buffer.
This actually takes less code than before, since we can get rid of
a nontrivial error recovery stanza.  It's doubtless a hair slower,
but parsing the content of the HBA files should in no way be
performance-critical.

Although this is a pretty straightforward patch, it doesn't seem
worth the risk to back-patch given the small number of complaints
to date.  In released branches, we'll just raise MAX_TOKEN to
ameliorate the problem.

Discussion: https://postgr.es/m/1588937.1690221208@sss.pgh.pa.us
src/backend/libpq/hba.c