postgres.git / summary / log / commit / refs

commit    fb3ea0465c1710c565e98d4b3e37aebb4e487eaf
Author:   Andres Freund <andres@anarazel.de>
Date:     Mon Mar 07 00:27:20 2016 +0000

    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 a1479fe949f..8eadb4bed18 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -481,7 +481,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); } [parent: 3fa4715c5061]