mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-07 13:10:56 +08:00
Added safety check to NormCenters [skip ci]
This commit is contained in:
@@ -103,8 +103,12 @@ NormCenters(FmgrInfo *normalizeprocinfo, Oid collation, VectorArray centers)
|
|||||||
{
|
{
|
||||||
Datum center = PointerGetDatum(VectorArrayGet(centers, j));
|
Datum center = PointerGetDatum(VectorArrayGet(centers, j));
|
||||||
Datum newCenter = IvfflatNormValue(normalizeprocinfo, collation, center);
|
Datum newCenter = IvfflatNormValue(normalizeprocinfo, collation, center);
|
||||||
|
Size size = VARSIZE_ANY(DatumGetPointer(newCenter));
|
||||||
|
|
||||||
memcpy(DatumGetPointer(center), DatumGetPointer(newCenter), VARSIZE_ANY(DatumGetPointer(newCenter)));
|
if (size > centers->itemsize)
|
||||||
|
elog(ERROR, "safety check failed");
|
||||||
|
|
||||||
|
memcpy(DatumGetPointer(center), DatumGetPointer(newCenter), size);
|
||||||
MemoryContextReset(normCtx);
|
MemoryContextReset(normCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user