1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Fix a problem in btree.c that could cause a crash following an OOM.

FossilOrigin-Name: b724aa5889f2e09cf0cbef133a672e6486755104
This commit is contained in:
dan
2013-04-01 14:29:33 +00:00
parent 6c5696381e
commit 71be5c5c87
3 changed files with 14 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
C Fix\sa\scomment\sin\sos_unix.c.\s\sNo\scode\schanges. C Fix\sa\sproblem\sin\sbtree.c\sthat\scould\scause\sa\scrash\sfollowing\san\sOOM.
D 2013-03-26T18:48:11.374 D 2013-04-01T14:29:33.960
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in df3e48659d80e1b7765785d8d66c86b320f72cc7 F Makefile.in df3e48659d80e1b7765785d8d66c86b320f72cc7
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -121,7 +121,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
F src/backup.c b2cac9f7993f3f9588827b824b1501d0c820fa68 F src/backup.c b2cac9f7993f3f9588827b824b1501d0c820fa68
F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7 F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
F src/btree.c 19b587b32569d4b92651b5eaa9de2e59c6f8f704 F src/btree.c 84c9a4a20b827a6f7dbcbcda59607dbee57af446
F src/btree.h d9490cd37aaeb530a41b07f06e1262950b1be916 F src/btree.h d9490cd37aaeb530a41b07f06e1262950b1be916
F src/btreeInt.h eecc84f02375b2bb7a44abbcbbe3747dde73edb2 F src/btreeInt.h eecc84f02375b2bb7a44abbcbbe3747dde73edb2
F src/build.c 083da8466fd7e481cb8bd5264398f537507f6176 F src/build.c 083da8466fd7e481cb8bd5264398f537507f6176
@@ -1040,7 +1040,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
P 611bd824c24a60d298f28705de323fa2e813a308 P 72813b8ec924b91583c679668f7c4561dff82a02
R 8f591838a5bc479ac7493be19f46439f R ff1f51b04ee42accb0ddfde388849db6
U drh U dan
Z be06b34348d93c4a77e7034db0a8802f Z fbb073bc333f3d3b9c496b3226200b28

View File

@@ -1 +1 @@
72813b8ec924b91583c679668f7c4561dff82a02 b724aa5889f2e09cf0cbef133a672e6486755104

View File

@@ -2596,12 +2596,13 @@ static int btreeSwapOutMmap(BtShared *pBt){
if( pPg && pPg->pDbPage->flags & PGHDR_MMAP ){ if( pPg && pPg->pDbPage->flags & PGHDR_MMAP ){
MemPage *pNew = 0; MemPage *pNew = 0;
rc = getAndInitPage(pBt, pPg->pgno, &pNew, 0); rc = getAndInitPage(pBt, pPg->pgno, &pNew, 0);
if( rc==SQLITE_OK && pCsr->iPage==0 ){ if( rc==SQLITE_OK ){
pCsr->info.pCell = pNew->aData + (pCsr->info.pCell - pPg->aData); if( pCsr->iPage==0 ){
pCsr->info.pCell = pNew->aData + (pCsr->info.pCell - pPg->aData);
}
pCsr->apPage[0] = pNew;
releasePage(pPg);
} }
pCsr->apPage[0] = pNew;
releasePage(pPg);
if( rc!=SQLITE_OK ) return rc;
} }
} }
} }