]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem in btree.c that could cause a crash following an OOM.
authordan <dan@noemail.net>
Mon, 1 Apr 2013 14:29:33 +0000 (14:29 +0000)
committerdan <dan@noemail.net>
Mon, 1 Apr 2013 14:29:33 +0000 (14:29 +0000)
FossilOrigin-Name: b724aa5889f2e09cf0cbef133a672e6486755104

manifest
manifest.uuid
src/btree.c

index 715e1994402e998dcd82d20deeff70fa46a1d0db..8a6c9f5c8d9477af1c41fd3e000480ab5756c6c6 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\scomment\sin\sos_unix.c.\s\sNo\scode\schanges.
-D 2013-03-26T18:48:11.374
+C Fix\sa\sproblem\sin\sbtree.c\sthat\scould\scause\sa\scrash\sfollowing\san\sOOM.
+D 2013-04-01T14:29:33.960
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in df3e48659d80e1b7765785d8d66c86b320f72cc7
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -121,7 +121,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
 F src/backup.c b2cac9f7993f3f9588827b824b1501d0c820fa68
 F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
 F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
-F src/btree.c 19b587b32569d4b92651b5eaa9de2e59c6f8f704
+F src/btree.c 84c9a4a20b827a6f7dbcbcda59607dbee57af446
 F src/btree.h d9490cd37aaeb530a41b07f06e1262950b1be916
 F src/btreeInt.h eecc84f02375b2bb7a44abbcbbe3747dde73edb2
 F src/build.c 083da8466fd7e481cb8bd5264398f537507f6176
@@ -1040,7 +1040,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P 611bd824c24a60d298f28705de323fa2e813a308
-R 8f591838a5bc479ac7493be19f46439f
-U drh
-Z be06b34348d93c4a77e7034db0a8802f
+P 72813b8ec924b91583c679668f7c4561dff82a02
+R ff1f51b04ee42accb0ddfde388849db6
+U dan
+Z fbb073bc333f3d3b9c496b3226200b28
index 855425c986108bd0436651245bb7cb9b93454087..069c9bb2ee772dede089cf40f7e4cec3569539b0 100644 (file)
@@ -1 +1 @@
-72813b8ec924b91583c679668f7c4561dff82a02
\ No newline at end of file
+b724aa5889f2e09cf0cbef133a672e6486755104
\ No newline at end of file
index 7d2f2d38409c0b80ae75295edc81c3462e3b581e..03764a9267c2712554a155d1f3fe375937b6a0c4 100644 (file)
@@ -2596,12 +2596,13 @@ static int btreeSwapOutMmap(BtShared *pBt){
       if( pPg && pPg->pDbPage->flags & PGHDR_MMAP ){
         MemPage *pNew = 0;
         rc = getAndInitPage(pBt, pPg->pgno, &pNew, 0);
-        if( rc==SQLITE_OK && pCsr->iPage==0 ){
-          pCsr->info.pCell = pNew->aData + (pCsr->info.pCell - pPg->aData);
+        if( rc==SQLITE_OK ){
+          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;
       }
     }
   }