aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gist.c
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2023-09-26 09:07:26 +1300
committerThomas Munro <tmunro@postgresql.org>2023-09-26 10:59:49 +1300
commitbde2f1847f51577b8e5a13a3ccc2cda9626fb214 (patch)
treec038ef855b4ae5d2fe9b695be94c156c51ee02fd /src/backend/access/gist/gist.c
parentfd7a114dbb4e8b700b0b738bb9c513b5fa3198a3 (diff)
downloadpostgresql-bde2f1847f51577b8e5a13a3ccc2cda9626fb214.tar.gz
postgresql-bde2f1847f51577b8e5a13a3ccc2cda9626fb214.zip
Fix edge-case for xl_tot_len broken by bae868ca.
bae868ca removed a check that was still needed. If you had an xl_tot_len at the end of a page that was too small for a record header, but not big enough to span onto the next page, we'd immediately perform the CRC check using a bogus large length. Because of arbitrary coding differences between the CRC implementations on different platforms, nothing very bad happened on common modern systems. On systems using the _sb8.c fallback we could segfault. Restore that check, add a new assertion and supply a test for that case. Back-patch to 12, like bae868ca. Tested-by: Tom Lane <tgl@sss.pgh.pa.us> Tested-by: Alexander Lakhin <exclusion@gmail.com> Discussion: https://postgr.es/m/CA%2BhUKGLCkTT7zYjzOxuLGahBdQ%3DMcF%3Dz5ZvrjSOnW4EDhVjT-g%40mail.gmail.com
Diffstat (limited to 'src/backend/access/gist/gist.c')
0 files changed, 0 insertions, 0 deletions