Fix out-of-bound read in gtsvector_picksplit()

This could lead to an imprecise choice when splitting an index page of a
GiST index on a tsvector, deciding which entries should remain on the
old page and which entries should move to a new page.

This is wrong since tsearch2 has been moved into core with commit
140d4ebcb4, so backpatch all the way down.  This error has been
spotted by valgrind.

Author: Alexander Lakhin
Discussion: https://postgr.es/m/17950-6c80a8d2b94ec695@postgresql.org
Backpatch-through: 11
This commit is contained in:
Michael Paquier 2023-09-04 14:55:53 +09:00
parent b8f4644d60
commit df11421d82
1 changed files with 2 additions and 2 deletions

View File

@ -728,7 +728,7 @@ gtsvector_picksplit(PG_FUNCTION_ARGS)
size_alpha = SIGLENBIT(siglen) -
sizebitvec((cache[j].allistrue) ?
GETSIGN(datum_l) :
GETSIGN(cache[j].sign),
cache[j].sign,
siglen);
}
else
@ -742,7 +742,7 @@ gtsvector_picksplit(PG_FUNCTION_ARGS)
size_beta = SIGLENBIT(siglen) -
sizebitvec((cache[j].allistrue) ?
GETSIGN(datum_r) :
GETSIGN(cache[j].sign),
cache[j].sign,
siglen);
}
else