diff --git a/src/backend/access/brin/brin_pageops.c b/src/backend/access/brin/brin_pageops.c
index ce4cbadf21ab2ac3f2cd201c8a256d60749d2474..0b257d913b60d201ae0901bc0245c712534693a9 100644
--- a/src/backend/access/brin/brin_pageops.c
+++ b/src/backend/access/brin/brin_pageops.c
@@ -55,7 +55,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
 	Buffer		newbuf;
 	bool		extended = false;
 
-	newsz = MAXALIGN(newsz);
+	Assert(newsz == MAXALIGN(newsz));
 
 	/* make sure the revmap is long enough to contain the entry we need */
 	brinRevmapExtend(revmap, heapBlk);
@@ -273,7 +273,7 @@ brin_doinsert(Relation idxrel, BlockNumber pagesPerRange,
 	ItemPointerData tid;
 	bool		extended = false;
 
-	itemsz = MAXALIGN(itemsz);
+	Assert(itemsz == MAXALIGN(itemsz));
 
 	/* Make sure the revmap is long enough to contain the entry we need */
 	brinRevmapExtend(revmap, heapBlk);
diff --git a/src/backend/access/brin/brin_tuple.c b/src/backend/access/brin/brin_tuple.c
index 72356c066c72faacda2bce4b97b7c2027a72cab8..5a7462b59cfa4de1cd7ae8d9a4e3f492c2ff3be3 100644
--- a/src/backend/access/brin/brin_tuple.c
+++ b/src/backend/access/brin/brin_tuple.c
@@ -103,9 +103,10 @@ brin_form_tuple(BrinDesc *brdesc, BlockNumber blkno, BrinMemTuple *tuple,
 
 	Assert(brdesc->bd_totalstored > 0);
 
-	values = palloc(sizeof(Datum) * brdesc->bd_totalstored);
-	nulls = palloc0(sizeof(bool) * brdesc->bd_totalstored);
-	phony_nullbitmap = palloc(sizeof(bits8) * BITMAPLEN(brdesc->bd_totalstored));
+	values = (Datum *) palloc(sizeof(Datum) * brdesc->bd_totalstored);
+	nulls = (bool *) palloc0(sizeof(bool) * brdesc->bd_totalstored);
+	phony_nullbitmap = (bits8 *)
+		palloc(sizeof(bits8) * BITMAPLEN(brdesc->bd_totalstored));
 
 	/*
 	 * Set up the values/nulls arrays for heap_fill_tuple
@@ -144,6 +145,9 @@ brin_form_tuple(BrinDesc *brdesc, BlockNumber blkno, BrinMemTuple *tuple,
 			values[idxattno++] = tuple->bt_columns[keyno].bv_values[datumno];
 	}
 
+	/* Assert we did not overrun temp arrays */
+	Assert(idxattno <= brdesc->bd_totalstored);
+
 	/* compute total space needed */
 	len = SizeOfBrinTuple;
 	if (anynulls)
@@ -160,12 +164,15 @@ brin_form_tuple(BrinDesc *brdesc, BlockNumber blkno, BrinMemTuple *tuple,
 
 	data_len = heap_compute_data_size(brtuple_disk_tupdesc(brdesc),
 									  values, nulls);
-
 	len += data_len;
 
+	len = MAXALIGN(len);
+
 	rettuple = palloc0(len);
 	rettuple->bt_blkno = blkno;
 	rettuple->bt_info = hoff;
+
+	/* Assert that hoff fits in the space available */
 	Assert((rettuple->bt_info & BRIN_OFFSET_MASK) == hoff);
 
 	/*