]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Improve pglz_decompress's defenses against corrupt compressed data.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 19 Oct 2023 00:43:17 +0000 (20:43 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 19 Oct 2023 00:43:17 +0000 (20:43 -0400)
commit817669ea27c4ecc4240adc88a12ddaed51997b00
tree0dae73108d08fac08253bada1569da6879696544
parent53c4dabe18d3de365a96ccf8c7493a9ffd4b6dcf
Improve pglz_decompress's defenses against corrupt compressed data.

When processing a match tag, check to see if the claimed "off"
is more than the distance back to the output buffer start.
If it is, then the data is corrupt, and what's more we would
fetch from outside the buffer boundaries and potentially incur
a SIGSEGV.  (Although the odds of that seem relatively low, given
that "off" can't be more than 4K.)

Back-patch to v13; before that, this function wasn't really
trying to protect against bad data.

Report and fix by Flavien Guedez.

Discussion: https://postgr.es/m/01fc0593-e31e-463d-902c-dd43174acee2@oopacity.net
src/common/pg_lzcompress.c