Fix nbtree lookahead overflow bug.
authorPeter Geoghegan <pg@bowt.ie>
Mon, 26 Aug 2024 15:29:15 +0000 (11:29 -0400)
committerPeter Geoghegan <pg@bowt.ie>
Mon, 26 Aug 2024 15:29:15 +0000 (11:29 -0400)
commit09a8407dbfd848301cd2c9801c3b4d75adc6cabc
tree46d022c2976d08386e83555173b35149c0a162c3
parentdbe37f1adb9fd10dc273ccf50816895360bcbc15
Fix nbtree lookahead overflow bug.

Add bounds checking to nbtree's lookahead/skip-within-a-page mechanism.
Otherwise it's possible for cases with lots of before-array-keys tuples
to overflow an int16 variable, causing the mechanism to generate an out
of bounds page offset number.

Oversight in commit 5bf748b8, which enhanced nbtree ScalarArrayOp
execution.

Reported-By: Alexander Lakhin <exclusion@gmail.com>
Discussion: https://postgr.es/m/6c68ac42-bbb5-8b24-103e-af0e279c536f@gmail.com
Backpatch: 17-, where nbtree SAOP execution was enhanced.
src/backend/access/nbtree/nbtutils.c