]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
If a malloc fails while allocating a savepoint object at the pager level, do not...
authordan <dan@noemail.net>
Thu, 3 Jun 2010 09:01:11 +0000 (09:01 +0000)
committerdan <dan@noemail.net>
Thu, 3 Jun 2010 09:01:11 +0000 (09:01 +0000)
FossilOrigin-Name: 91cb08ffb6332a142542c012b58aa49206ee5704

manifest
manifest.uuid
src/pager.c

index c25461abaa1457a49caa79b4c45cd692edf3e01d..614234cfe71b6109d2ef53f415fbfa75e4dbd63d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,5 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-C When\sa\slock\sfails\sdue\sto\san\sI/O\serror\s(not\san\sSQLITE_BUSY)\sthen\sthe\scheckpoint\nshould\sfail.
-D 2010-06-02T20:38:20
+C If\sa\smalloc\sfails\swhile\sallocating\sa\ssavepoint\sobject\sat\sthe\spager\slevel,\sdo\snot\stry\sto\sroll\sthat\ssavepoint\sback\slater\son.
+D 2010-06-03T09:01:11
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in a5cad1f8f3e021356bfcc6c77dc16f6f1952bbc3
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -157,7 +154,7 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
 F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
 F src/os_unix.c 8fa4eeb27c54f26e9ce01bead2fa117fadea1526
 F src/os_win.c f815403c51a2adad30244374c801dd7fd2734567
-F src/pager.c fa5ce633dac820ad15896c8b651a21487e764fe1
+F src/pager.c 1eca1ede7d455a356524834f590546110c3b1a64
 F src/pager.h 76466c3a5af56943537f68b1f16567101a0cd1d0
 F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
 F src/pcache.c ace8f6a5ecd4711cc66a1b23053be7109bd437cf
@@ -818,14 +815,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 6b4aed6aae7dc9e92807d27375cbe1e83c15841b
-R 5a63358b24f762d2a5d723d2f4dee266
-U drh
-Z 5916110e5843d94fcf92f8c8799678c0
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQFMBsE/oxKgR168RlERAnyXAJ9L8EZUrUM001IAwVmNi3rJmErAKACfZ+qz
-cfaXGrDf9yLgardB9fTDyec=
-=U93m
------END PGP SIGNATURE-----
+P c6eb0a27270df69018576232d8f97c16d63d8f6e
+R 73f30283983a54a2ac76ec9e924b342e
+U dan
+Z 34e0f24dbde51f432bdf60db64ca02da
index ce583037f6fd0d9cff99599fb0767537b1b0f91d..24e297e8265689dc23172ba3562e2bae8ef7da2e 100644 (file)
@@ -1 +1 @@
-c6eb0a27270df69018576232d8f97c16d63d8f6e
\ No newline at end of file
+91cb08ffb6332a142542c012b58aa49206ee5704
\ No newline at end of file
index 416e9ed135309895ab08507b9cbf9abdefefdf37..3dbc01f2a9d0300571bde3877c497daa8dad3c1d 100644 (file)
@@ -5449,7 +5449,6 @@ int sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint){
     }
     memset(&aNew[nCurrent], 0, (nSavepoint-nCurrent) * sizeof(PagerSavepoint));
     pPager->aSavepoint = aNew;
-    pPager->nSavepoint = nSavepoint;
 
     /* Populate the PagerSavepoint structures just allocated. */
     for(ii=nCurrent; ii<nSavepoint; ii++){
@@ -5467,7 +5466,9 @@ int sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint){
       if( pagerUseWal(pPager) ){
         sqlite3WalSavepoint(pPager->pWal, aNew[ii].aWalData);
       }
+      pPager->nSavepoint = ii+1;
     }
+    assert( pPager->nSavepoint==nSavepoint );
 
     /* Open the sub-journal, if it is not already opened. */
     rc = openSubJournal(pPager);