Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit88b6bc4

Browse files
author
Artur Zakirov
committed
Fix possible subtraction overflow
1 parent284ecc4 commit88b6bc4

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

‎rumdatapage.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -724,6 +724,7 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
724724
DatumaddInfo=0;
725725
booladdInfoIsNull= false;
726726
intmaxoff=RumPageGetOpaque(page)->maxoff;
727+
intfreespace;
727728

728729
/*
729730
* We're going to prevent var-byte re-encoding of whole page.
@@ -760,7 +761,8 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
760761
&btree->items[j],btree->addInfo[j],btree->addInfoIsNull[j],
761762
&iptr,btree->rumstate,ptr-page);
762763

763-
if (RumDataPageFreeSpacePre(page,ptr2)<0)
764+
freespace=RumDataPageFreeSpacePre(page,ptr2);
765+
if (freespace<0)
764766
break;
765767

766768
ptr=rumPlaceToDataPageLeaf(ptr,btree->entryAttnum,
@@ -790,7 +792,8 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
790792

791793
RumPageGetOpaque(page)->maxoff+=i;
792794

793-
if (RumDataPageFreeSpacePre(page,ptr)<0)
795+
freespace=RumDataPageFreeSpacePre(page,ptr);
796+
if (freespace<0)
794797
elog(ERROR,"Not enough of space in leaf page!");
795798

796799
/* Update indexes in the end of page */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp