Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit f8ebab9

Browse files
committed
Fix reference-after-free in the new btree page split code, as reported by
the buildfarm via Stefan Kaltenbrunner. Patch from Heikki Linnakangas.
1 parent 086c189 commit f8ebab9

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/backend/access/nbtree/nbtinsert.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.150 2007/02/08 05:05:53 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.151 2007/02/08 13:52:55 alvherre Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -953,7 +953,7 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
953953
xlrec.rightsib = BufferGetBlockNumber(rbuf);
954954
xlrec.firstright = firstright;
955955
xlrec.rnext = ropaque->btpo_next;
956-
xlrec.level = lopaque->btpo.level;
956+
xlrec.level = ropaque->btpo.level;
957957

958958
rdata[0].data = (char *) &xlrec;
959959
rdata[0].len = SizeOfBtreeSplit;
@@ -962,7 +962,7 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
962962
lastrdata = &rdata[0];
963963

964964
/* Log downlink on non-leaf pages. */
965-
if (lopaque->btpo.level > 0)
965+
if (ropaque->btpo.level > 0)
966966
{
967967
lastrdata->next = lastrdata + 1;
968968
lastrdata++;
@@ -1040,8 +1040,8 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
10401040

10411041
recptr = XLogInsert(RM_BTREE_ID, xlinfo, rdata);
10421042

1043-
PageSetLSN(leftpage, recptr);
1044-
PageSetTLI(leftpage, ThisTimeLineID);
1043+
PageSetLSN(origpage, recptr);
1044+
PageSetTLI(origpage, ThisTimeLineID);
10451045
PageSetLSN(rightpage, recptr);
10461046
PageSetTLI(rightpage, ThisTimeLineID);
10471047
if (!P_RIGHTMOST(ropaque))

0 commit comments

Comments
 (0)