xl_heap_delete *xlrec = (xl_heap_delete *) XLogRecGetData(record);
Buffer buffer;
Page page;
- ItemId lp = NULL;
+ ItemId lp;
HeapTupleHeader htup;
BlockNumber blkno;
RelFileLocator target_locator;
{
page = BufferGetPage(buffer);
- if (PageGetMaxOffsetNumber(page) >= xlrec->offnum)
- lp = PageGetItemId(page, xlrec->offnum);
-
- if (PageGetMaxOffsetNumber(page) < xlrec->offnum || !ItemIdIsNormal(lp))
+ if (xlrec->offnum < 1 || xlrec->offnum > PageGetMaxOffsetNumber(page))
+ elog(PANIC, "offnum out of range");
+ lp = PageGetItemId(page, xlrec->offnum);
+ if (!ItemIdIsNormal(lp))
elog(PANIC, "invalid lp");
htup = (HeapTupleHeader) PageGetItem(page, lp);
nbuffer;
Page page;
OffsetNumber offnum;
- ItemId lp = NULL;
+ ItemId lp;
HeapTupleData oldtup;
HeapTupleHeader htup;
uint16 prefixlen = 0,
{
page = BufferGetPage(obuffer);
offnum = xlrec->old_offnum;
- if (PageGetMaxOffsetNumber(page) >= offnum)
- lp = PageGetItemId(page, offnum);
-
- if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsNormal(lp))
+ if (offnum < 1 || offnum > PageGetMaxOffsetNumber(page))
+ elog(PANIC, "offnum out of range");
+ lp = PageGetItemId(page, offnum);
+ if (!ItemIdIsNormal(lp))
elog(PANIC, "invalid lp");
htup = (HeapTupleHeader) PageGetItem(page, lp);
Buffer buffer;
Page page;
OffsetNumber offnum;
- ItemId lp = NULL;
+ ItemId lp;
HeapTupleHeader htup;
if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO)
page = BufferGetPage(buffer);
offnum = xlrec->offnum;
- if (PageGetMaxOffsetNumber(page) >= offnum)
- lp = PageGetItemId(page, offnum);
-
- if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsNormal(lp))
+ if (offnum < 1 || offnum > PageGetMaxOffsetNumber(page))
+ elog(PANIC, "offnum out of range");
+ lp = PageGetItemId(page, offnum);
+ if (!ItemIdIsNormal(lp))
elog(PANIC, "invalid lp");
htup = (HeapTupleHeader) PageGetItem(page, lp);
Buffer buffer;
Page page;
OffsetNumber offnum;
- ItemId lp = NULL;
+ ItemId lp;
HeapTupleHeader htup;
/*
page = BufferGetPage(buffer);
offnum = xlrec->offnum;
- if (PageGetMaxOffsetNumber(page) >= offnum)
- lp = PageGetItemId(page, offnum);
-
- if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsNormal(lp))
+ if (offnum < 1 || offnum > PageGetMaxOffsetNumber(page))
+ elog(PANIC, "offnum out of range");
+ lp = PageGetItemId(page, offnum);
+ if (!ItemIdIsNormal(lp))
elog(PANIC, "invalid lp");
htup = (HeapTupleHeader) PageGetItem(page, lp);
Buffer buffer;
Page page;
OffsetNumber offnum;
- ItemId lp = NULL;
+ ItemId lp;
HeapTupleHeader htup;
xlrec = (xl_heap_lock_updated *) XLogRecGetData(record);
page = BufferGetPage(buffer);
offnum = xlrec->offnum;
- if (PageGetMaxOffsetNumber(page) >= offnum)
- lp = PageGetItemId(page, offnum);
-
- if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsNormal(lp))
+ if (offnum < 1 || offnum > PageGetMaxOffsetNumber(page))
+ elog(PANIC, "offnum out of range");
+ lp = PageGetItemId(page, offnum);
+ if (!ItemIdIsNormal(lp))
elog(PANIC, "invalid lp");
htup = (HeapTupleHeader) PageGetItem(page, lp);
Buffer buffer;
Page page;
OffsetNumber offnum;
- ItemId lp = NULL;
+ ItemId lp;
HeapTupleHeader htup;
uint32 oldlen;
Size newlen;
page = BufferGetPage(buffer);
offnum = xlrec->offnum;
- if (PageGetMaxOffsetNumber(page) >= offnum)
- lp = PageGetItemId(page, offnum);
-
- if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsNormal(lp))
+ if (offnum < 1 || offnum > PageGetMaxOffsetNumber(page))
+ elog(PANIC, "offnum out of range");
+ lp = PageGetItemId(page, offnum);
+ if (!ItemIdIsNormal(lp))
elog(PANIC, "invalid lp");
htup = (HeapTupleHeader) PageGetItem(page, lp);