From fd45d16f6212df15821684b231a44448389fb002 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Sun, 6 Mar 2016 16:27:20 -0800
Subject: [PATCH] Fix wrong allocation size in c8f621c43.

In c8f621c43 I forgot to account for MAXALIGN when allocating a new
tuplebuf in ReorderBufferGetTupleBuf(). That happens to currently not
cause active problems on a number of platforms because the affected
pointer is already aligned, but others, like ppc and hppa, trigger this
in the regression test, due to a debug memset clearing memory.

Fix that.

Backpatch: 9.4, like the previous commit.
---
 src/backend/replication/logical/reorderbuffer.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index 570400ffb73..e2ad4728cdc 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -483,7 +483,8 @@ ReorderBufferGetTupleBuf(ReorderBuffer *rb, Size tuple_len)
 	{
 		tuple = (ReorderBufferTupleBuf *)
 			MemoryContextAlloc(rb->context,
-							   sizeof(ReorderBufferTupleBuf) + alloc_len);
+							   sizeof(ReorderBufferTupleBuf) +
+							   MAXIMUM_ALIGNOF + alloc_len);
 		tuple->alloc_tuple_size = alloc_len;
 		tuple->tuple.t_data = ReorderBufferTupleBufData(tuple);
 	}
-- 
GitLab