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,
