Fix small overestimation of base64 encoding output length.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 8 Jun 2023 15:24:31 +0000 (11:24 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 8 Jun 2023 15:24:31 +0000 (11:24 -0400)
commitd98ed080bb31fd3d46281127871b7886288686d9
treece150d089e3d3928ada64c6910f2bae44d0b666e
parent378d73ef204d0dcbeab834d52478e8cb90578ab7
Fix small overestimation of base64 encoding output length.

pg_base64_enc_len() and its clones overestimated the output
length by up to 2 bytes, as a result of sloppy thinking about
where to divide.  No callers require a precise estimate, so
this has no consequences worse than palloc'ing a byte or two
more than necessary.  We might as well get it right though.

This bug is very ancient, dating to commit 79d78bb26 which
added encode.c.  (The other instances were presumably copied
from there.)  Still, it doesn't quite seem worth back-patching.

Oleg Tselebrovskiy

Discussion: https://postgr.es/m/f94da55286a63022150bc266afdab754@postgrespro.ru
contrib/pgcrypto/pgp-armor.c
src/backend/utils/adt/encode.c
src/common/base64.c