]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Be more wary of corrupt data in pageinspect's heap_page_items().
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 19 Apr 2025 20:37:42 +0000 (16:37 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 19 Apr 2025 20:37:42 +0000 (16:37 -0400)
commit90a3fd811edee14fcc2c105bd85d4d4948807f43
tree68bbb3c2eb9ddfdd01eaaac455c6ac50700eca44
parent7144cd53821f7ba9008cc9ecb0223ef0dde0ce2f
Be more wary of corrupt data in pageinspect's heap_page_items().

The original intent in heap_page_items() was to return nulls, not
throw an error or crash, if an item was sufficiently corrupt that
we couldn't safely extract data from it.  However, commit d6061f83a
utterly missed that memo, and not only put in an un-length-checked
copy of the tuple's data section, but also managed to break the check
on sane nulls-bitmap length.  Either mistake could possibly lead to
a SIGSEGV crash if the tuple is corrupt.

Bug: #18896
Reported-by: Dmitry Kovalenko <d.kovalenko@postgrespro.ru>
Author: Dmitry Kovalenko <d.kovalenko@postgrespro.ru>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/18896-add267b8e06663e3@postgresql.org
Backpatch-through: 13
contrib/pageinspect/heapfuncs.c