aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/tsgistidx.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2023-09-04 14:55:57 +0900
committerMichael Paquier <michael@paquier.xyz>2023-09-04 14:55:57 +0900
commit40ddb8db9f2c62aed5025aaf503e188f7d1f27af (patch)
tree856a81742ac02c23fa5e61d033354b295978fab4 /src/backend/utils/adt/tsgistidx.c
parenta67cf941151f3fcf35fb3ccf3446644ded89a942 (diff)
downloadpostgresql-40ddb8db9f2c62aed5025aaf503e188f7d1f27af.tar.gz
postgresql-40ddb8db9f2c62aed5025aaf503e188f7d1f27af.zip
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 140d4ebcb46e, 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
Diffstat (limited to 'src/backend/utils/adt/tsgistidx.c')
-rw-r--r--src/backend/utils/adt/tsgistidx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/utils/adt/tsgistidx.c b/src/backend/utils/adt/tsgistidx.c
index 4f256260fd1..3f50324808c 100644
--- a/src/backend/utils/adt/tsgistidx.c
+++ b/src/backend/utils/adt/tsgistidx.c
@@ -728,7 +728,7 @@ gtsvector_picksplit(PG_FUNCTION_ARGS)
size_alpha = 0;
else
size_alpha = SIGLENBIT - sizebitvec(
- (cache[j].allistrue) ? GETSIGN(datum_l) : GETSIGN(cache[j].sign)
+ (cache[j].allistrue) ? GETSIGN(datum_l) : cache[j].sign
);
}
else
@@ -740,7 +740,7 @@ gtsvector_picksplit(PG_FUNCTION_ARGS)
size_beta = 0;
else
size_beta = SIGLENBIT - sizebitvec(
- (cache[j].allistrue) ? GETSIGN(datum_r) : GETSIGN(cache[j].sign)
+ (cache[j].allistrue) ? GETSIGN(datum_r) : cache[j].sign
);
}
else