diff --git a/src/ivfflat.h b/src/ivfflat.h index cb07e12..e0c06b7 100644 --- a/src/ivfflat.h +++ b/src/ivfflat.h @@ -309,7 +309,12 @@ VectorArrayGet(VectorArray arr, int offset) static inline void VectorArraySet(VectorArray arr, int offset, Pointer val) { - memcpy(VectorArrayGet(arr, offset), val, VARSIZE_ANY(val)); + Size size = VARSIZE_ANY(val); + + if (size > arr->itemsize) + elog(ERROR, "safety check failed"); + + memcpy(VectorArrayGet(arr, offset), val, size); } /* Methods */