diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c
index aeaafed..4840b0e 100644
*** a/src/backend/access/transam/xlogreader.c
--- b/src/backend/access/transam/xlogreader.c
*************** DecodeXLogRecord(XLogReaderState *state,
*** 1279,1285 ****
  		{
  			if (state->main_data)
  				pfree(state->main_data);
! 			state->main_data_bufsz = state->main_data_len;
  			state->main_data = palloc(state->main_data_bufsz);
  		}
  		memcpy(state->main_data, ptr, state->main_data_len);
--- 1279,1285 ----
  		{
  			if (state->main_data)
  				pfree(state->main_data);
! 			state->main_data_bufsz = MAXALIGN(state->main_data_len);
  			state->main_data = palloc(state->main_data_bufsz);
  		}
  		memcpy(state->main_data, ptr, state->main_data_len);
