Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 6749d4a

Browse files
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 5bf748b, 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.
1 parent 5e58107 commit 6749d4a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/access/nbtree/nbtutils.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -4091,7 +4091,7 @@ _bt_checkkeys_look_ahead(IndexScanDesc scan, BTReadPageState *pstate,
40914091
*/
40924092
if (!pstate->targetdistance)
40934093
pstate->targetdistance = LOOK_AHEAD_DEFAULT_DISTANCE;
4094-
else
4094+
else if (pstate->targetdistance < MaxIndexTuplesPerPage / 2)
40954095
pstate->targetdistance *= 2;
40964096

40974097
/* Don't read past the end (or before the start) of the page, though */

0 commit comments

Comments
 (0)