--- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -2303,7 +2303,8 @@ ReorderBufferRestoreChange(ReorderBuffer case REORDER_BUFFER_CHANGE_DELETE: if (change->data.tp.oldtuple) { - Size tuplelen = ((HeapTuple) data)->t_len; + Size tuplelen; + memcpy(&tuplelen, &((HeapTuple) data)->t_len, sizeof(uint32)); change->data.tp.oldtuple = ReorderBufferGetTupleBuf(rb, tuplelen - offsetof(HeapTupleHeaderData, t_bits)); @@ -2324,7 +2325,8 @@ ReorderBufferRestoreChange(ReorderBuffer if (change->data.tp.newtuple) { - Size tuplelen = ((HeapTuple) data)->t_len; + Size tuplelen; + memcpy(&tuplelen, &((HeapTuple) data)->t_len, sizeof(uint32)); change->data.tp.newtuple = ReorderBufferGetTupleBuf(rb, tuplelen - offsetof(HeapTupleHeaderData, t_bits));