From: dan Date: Sun, 24 Feb 2013 11:50:43 +0000 (+0000) Subject: Fix a case where database corruption may cause an assert() to fail. X-Git-Tag: version-3.7.16~34^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9138471141dc1bd40db0430d17a612bfb5759a95;p=thirdparty%2Fsqlite.git Fix a case where database corruption may cause an assert() to fail. FossilOrigin-Name: ba33bb059ed4f4547da2880dbc8bd827c06fae34 --- diff --git a/manifest b/manifest index 034f22ed52..04965dd758 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\scase\sin\sthe\sincremental\svacuum\scode\swhere\sdatabase\scorruption\swas\sgoing\sunreported. -D 2013-02-23T19:43:47.508 +C Fix\sa\scase\swhere\sdatabase\scorruption\smay\scause\san\sassert()\sto\sfail. +D 2013-02-24T11:50:43.950 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in a48faa9e7dd7d556d84f5456eabe5825dd8a6282 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -121,7 +121,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34 F src/backup.c 0b8d2108a10ada00e642525921960b0c27451955 F src/bitvec.c 26675fe8e431dc555e6f2d0e11e651d172234aa1 F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7 -F src/btree.c b84e2ac3b4ed5a4eb1b186c9c37eef53b635bc7f +F src/btree.c cbad71970cfadfa342fc137ca5e319f98b2d0da1 F src/btree.h 3ad7964d6c5b1c7bff569aab6adfa075f8bf06cd F src/btreeInt.h eecc84f02375b2bb7a44abbcbbe3747dde73edb2 F src/build.c 73ca65f32938e4e0d94e831b61b5749b211b79be @@ -1034,7 +1034,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 f921df59560d536f5b80eef8c995cbe3ff591bae -R 1c3862ad49b71ee257cac1e86a276cf3 +P 4cd30c72629a7f44b18026a70103aa0bb8a3b959 +R 4b714cf37fc577e9e0a95ce1f9383dd9 U dan -Z 0b46646dde77425bfb67d915fec16418 +Z 57f0815a503efb202bba1a714e0db419 diff --git a/manifest.uuid b/manifest.uuid index 78f73b491f..801adee734 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4cd30c72629a7f44b18026a70103aa0bb8a3b959 \ No newline at end of file +ba33bb059ed4f4547da2880dbc8bd827c06fae34 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 6c6d0b953b..84bafb9e73 100644 --- a/src/btree.c +++ b/src/btree.c @@ -3066,7 +3066,9 @@ int sqlite3BtreeIncrVacuum(Btree *p){ Pgno nFree = get4byte(&pBt->pPage1->aData[36]); Pgno nFin = finalDbSize(pBt, nOrig, nFree); - if( nFree>0 ){ + if( nOrig0 ){ invalidateAllOverflowCache(pBt); rc = incrVacuumStep(pBt, nFin, nOrig, 0); if( rc==SQLITE_OK ){