pageinspect: Fix crash with gist_page_items()
Michael Paquier <michael@paquier.xyz>
pageinspect: Fix crash with gist_page_items() Attempting to use this function with a raw page not coming from a GiST index would cause a crash, as it was missing the same sanity checks as gist_page_items_bytea(). This slightly refactors the code so as all the basic validation checks for GiST pages are done in a single routine, in the same fashion as the pageinspect functions for hash and BRIN. This fixes an issue similar to 076f4d9. A test is added to stress for this case. While on it, I have added a similar test for brin_page_items() with a combination make of a valid GiST index and a raw btree page. This one was already protected, but it was not tested. Reported-by: Egor Chindyaskin Author: Dmitry Koval Discussion: https://postgr.es/m/17815-fc4a2d3b74705703@postgresql.org Backpatch-through: 14
Files
| Path | Change | +/− |
|---|---|---|
| contrib/pageinspect/expected/brin.out | modified | +5 −3 |
| contrib/pageinspect/expected/gist.out | modified | +6 −4 |
| contrib/pageinspect/gistfuncs.c | modified | +40 −42 |
| contrib/pageinspect/sql/brin.sql | modified | +5 −3 |
| contrib/pageinspect/sql/gist.sql | modified | +6 −4 |
Discussion
- BUG #17815: Server crashes on executing gist_page_items() in pageinspect extension 6 messages · 2023-03-01 → 2023-03-02