diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c index 7a1e94a1d56..52d84a2c207 100644 --- a/src/backend/access/gin/ginxlog.c +++ b/src/backend/access/gin/ginxlog.c @@ -276,6 +276,7 @@ ginRedoRecompress(Page page, ginxlogRecompressDataLeaf *data) break; case GIN_SEGMENT_INSERT: + Assert(segptr + newsegsize + szleft <= PageGetSpecialPointer(page)); /* make room for the new segment */ memmove(segptr + newsegsize, segptr, szleft); /* copy the new segment in place */ @@ -285,6 +286,8 @@ ginRedoRecompress(Page page, ginxlogRecompressDataLeaf *data) break; case GIN_SEGMENT_REPLACE: + Assert(segptr + newsegsize + (szleft - segsize) <= PageGetSpecialPointer(page)); + Assert(segptr + szleft <= PageGetSpecialPointer(page)); /* shift the segments that follow */ memmove(segptr + newsegsize, segptr + segsize,